Changeset 273138 in webkit
- Timestamp:
- Feb 19, 2021 7:51:15 AM (17 months ago)
- Location:
- trunk/Source
- Files:
-
- 7 added
- 565 edited
-
JavaScriptCore/API/JSAPIWrapperObject.h (modified) (2 diffs)
-
JavaScriptCore/API/JSAPIWrapperObject.mm (modified) (7 diffs)
-
JavaScriptCore/API/JSCallbackObject.cpp (modified) (2 diffs)
-
JavaScriptCore/API/JSCallbackObject.h (modified) (5 diffs)
-
JavaScriptCore/API/JSManagedValue.mm (modified) (3 diffs)
-
JavaScriptCore/API/JSMarkingConstraintPrivate.cpp (modified) (4 diffs)
-
JavaScriptCore/API/JSVirtualMachine.mm (modified) (4 diffs)
-
JavaScriptCore/API/JSVirtualMachineInternal.h (modified) (3 diffs)
-
JavaScriptCore/API/MarkedJSValueRefArray.cpp (modified) (3 diffs)
-
JavaScriptCore/API/MarkedJSValueRefArray.h (modified) (2 diffs)
-
JavaScriptCore/API/glib/JSAPIWrapperGlobalObject.cpp (modified) (2 diffs)
-
JavaScriptCore/API/glib/JSAPIWrapperGlobalObject.h (modified) (1 diff)
-
JavaScriptCore/API/glib/JSAPIWrapperObjectGLib.cpp (modified) (5 diffs)
-
JavaScriptCore/CMakeLists.txt (modified) (4 diffs)
-
JavaScriptCore/ChangeLog (modified) (1 diff)
-
JavaScriptCore/JavaScriptCore.xcodeproj/project.pbxproj (modified) (19 diffs)
-
JavaScriptCore/Scripts/wkbuiltins/builtins_generate_internals_wrapper_header.py (modified) (2 diffs)
-
JavaScriptCore/Scripts/wkbuiltins/builtins_generate_internals_wrapper_implementation.py (modified) (3 diffs)
-
JavaScriptCore/Scripts/wkbuiltins/builtins_templates.py (modified) (4 diffs)
-
JavaScriptCore/Sources.txt (modified) (1 diff)
-
JavaScriptCore/bytecode/AccessCase.cpp (modified) (4 diffs)
-
JavaScriptCore/bytecode/AccessCase.h (modified) (2 diffs)
-
JavaScriptCore/bytecode/ByValInfo.cpp (modified) (2 diffs)
-
JavaScriptCore/bytecode/ByValInfo.h (modified) (2 diffs)
-
JavaScriptCore/bytecode/CheckPrivateBrandStatus.cpp (modified) (2 diffs)
-
JavaScriptCore/bytecode/CheckPrivateBrandStatus.h (modified) (1 diff)
-
JavaScriptCore/bytecode/CheckPrivateBrandVariant.cpp (modified) (2 diffs)
-
JavaScriptCore/bytecode/CheckPrivateBrandVariant.h (modified) (1 diff)
-
JavaScriptCore/bytecode/CodeBlock.cpp (modified) (21 diffs)
-
JavaScriptCore/bytecode/CodeBlock.h (modified) (5 diffs)
-
JavaScriptCore/bytecode/DeleteByIdVariant.cpp (modified) (3 diffs)
-
JavaScriptCore/bytecode/DeleteByIdVariant.h (modified) (2 diffs)
-
JavaScriptCore/bytecode/DeleteByStatus.cpp (modified) (3 diffs)
-
JavaScriptCore/bytecode/DeleteByStatus.h (modified) (2 diffs)
-
JavaScriptCore/bytecode/DirectEvalCodeCache.cpp (modified) (3 diffs)
-
JavaScriptCore/bytecode/DirectEvalCodeCache.h (modified) (2 diffs)
-
JavaScriptCore/bytecode/ExecutableToCodeBlockEdge.cpp (modified) (8 diffs)
-
JavaScriptCore/bytecode/ExecutableToCodeBlockEdge.h (modified) (3 diffs)
-
JavaScriptCore/bytecode/GetByIdVariant.cpp (modified) (2 diffs)
-
JavaScriptCore/bytecode/GetByIdVariant.h (modified) (2 diffs)
-
JavaScriptCore/bytecode/GetByStatus.cpp (modified) (3 diffs)
-
JavaScriptCore/bytecode/GetByStatus.h (modified) (2 diffs)
-
JavaScriptCore/bytecode/InByIdStatus.cpp (modified) (2 diffs)
-
JavaScriptCore/bytecode/InByIdStatus.h (modified) (2 diffs)
-
JavaScriptCore/bytecode/InByIdVariant.cpp (modified) (2 diffs)
-
JavaScriptCore/bytecode/InByIdVariant.h (modified) (2 diffs)
-
JavaScriptCore/bytecode/InternalFunctionAllocationProfile.h (modified) (2 diffs)
-
JavaScriptCore/bytecode/ObjectAllocationProfile.h (modified) (3 diffs)
-
JavaScriptCore/bytecode/PolymorphicAccess.cpp (modified) (3 diffs)
-
JavaScriptCore/bytecode/PolymorphicAccess.h (modified) (3 diffs)
-
JavaScriptCore/bytecode/PutByIdStatus.cpp (modified) (2 diffs)
-
JavaScriptCore/bytecode/PutByIdStatus.h (modified) (2 diffs)
-
JavaScriptCore/bytecode/PutByIdVariant.cpp (modified) (3 diffs)
-
JavaScriptCore/bytecode/PutByIdVariant.h (modified) (2 diffs)
-
JavaScriptCore/bytecode/RecordedStatuses.cpp (modified) (3 diffs)
-
JavaScriptCore/bytecode/RecordedStatuses.h (modified) (2 diffs)
-
JavaScriptCore/bytecode/SetPrivateBrandStatus.cpp (modified) (2 diffs)
-
JavaScriptCore/bytecode/SetPrivateBrandStatus.h (modified) (1 diff)
-
JavaScriptCore/bytecode/SetPrivateBrandVariant.cpp (modified) (4 diffs)
-
JavaScriptCore/bytecode/SetPrivateBrandVariant.h (modified) (1 diff)
-
JavaScriptCore/bytecode/StructureSet.cpp (modified) (2 diffs)
-
JavaScriptCore/bytecode/StructureSet.h (modified) (2 diffs)
-
JavaScriptCore/bytecode/StructureStubInfo.cpp (modified) (5 diffs)
-
JavaScriptCore/bytecode/StructureStubInfo.h (modified) (3 diffs)
-
JavaScriptCore/bytecode/UnlinkedCodeBlock.cpp (modified) (3 diffs)
-
JavaScriptCore/bytecode/UnlinkedCodeBlock.h (modified) (2 diffs)
-
JavaScriptCore/bytecode/UnlinkedFunctionExecutable.cpp (modified) (3 diffs)
-
JavaScriptCore/bytecode/UnlinkedFunctionExecutable.h (modified) (2 diffs)
-
JavaScriptCore/debugger/DebuggerScope.cpp (modified) (3 diffs)
-
JavaScriptCore/debugger/DebuggerScope.h (modified) (2 diffs)
-
JavaScriptCore/dfg/DFGDesiredTransitions.cpp (modified) (6 diffs)
-
JavaScriptCore/dfg/DFGDesiredTransitions.h (modified) (4 diffs)
-
JavaScriptCore/dfg/DFGDesiredWeakReferences.cpp (modified) (3 diffs)
-
JavaScriptCore/dfg/DFGDesiredWeakReferences.h (modified) (3 diffs)
-
JavaScriptCore/dfg/DFGGraph.cpp (modified) (3 diffs)
-
JavaScriptCore/dfg/DFGGraph.h (modified) (3 diffs)
-
JavaScriptCore/dfg/DFGPlan.cpp (modified) (4 diffs)
-
JavaScriptCore/dfg/DFGPlan.h (modified) (3 diffs)
-
JavaScriptCore/dfg/DFGPlanInlines.h (modified) (2 diffs)
-
JavaScriptCore/dfg/DFGSafepoint.cpp (modified) (5 diffs)
-
JavaScriptCore/dfg/DFGSafepoint.h (modified) (3 diffs)
-
JavaScriptCore/dfg/DFGScannable.h (modified) (3 diffs)
-
JavaScriptCore/dfg/DFGWorklist.cpp (modified) (5 diffs)
-
JavaScriptCore/dfg/DFGWorklist.h (modified) (5 diffs)
-
JavaScriptCore/dfg/DFGWorklistInlines.h (modified) (4 diffs)
-
JavaScriptCore/heap/AbstractSlotVisitor.h (added)
-
JavaScriptCore/heap/AbstractSlotVisitorInlines.h (added)
-
JavaScriptCore/heap/HandleSet.cpp (modified) (3 diffs)
-
JavaScriptCore/heap/HandleSet.h (modified) (3 diffs)
-
JavaScriptCore/heap/Heap.cpp (modified) (16 diffs)
-
JavaScriptCore/heap/Heap.h (modified) (9 diffs)
-
JavaScriptCore/heap/HeapInlines.h (modified) (1 diff)
-
JavaScriptCore/heap/HeapProfiler.cpp (modified) (2 diffs)
-
JavaScriptCore/heap/IsoCellSet.h (modified) (2 diffs)
-
JavaScriptCore/heap/IsoCellSetInlines.h (modified) (3 diffs)
-
JavaScriptCore/heap/JITStubRoutineSet.cpp (modified) (3 diffs)
-
JavaScriptCore/heap/JITStubRoutineSet.h (modified) (4 diffs)
-
JavaScriptCore/heap/MarkStackMergingConstraint.cpp (modified) (3 diffs)
-
JavaScriptCore/heap/MarkStackMergingConstraint.h (modified) (2 diffs)
-
JavaScriptCore/heap/MarkedBlock.h (modified) (4 diffs)
-
JavaScriptCore/heap/MarkedSpace.cpp (modified) (2 diffs)
-
JavaScriptCore/heap/MarkedSpace.h (modified) (2 diffs)
-
JavaScriptCore/heap/MarkingConstraint.cpp (modified) (6 diffs)
-
JavaScriptCore/heap/MarkingConstraint.h (modified) (4 diffs)
-
JavaScriptCore/heap/MarkingConstraintExecutorPair.h (added)
-
JavaScriptCore/heap/MarkingConstraintSet.cpp (modified) (3 diffs)
-
JavaScriptCore/heap/MarkingConstraintSet.h (modified) (5 diffs)
-
JavaScriptCore/heap/MarkingConstraintSolver.cpp (modified) (1 diff)
-
JavaScriptCore/heap/MarkingConstraintSolver.h (modified) (1 diff)
-
JavaScriptCore/heap/SimpleMarkingConstraint.cpp (modified) (3 diffs)
-
JavaScriptCore/heap/SimpleMarkingConstraint.h (modified) (5 diffs)
-
JavaScriptCore/heap/SlotVisitor.cpp (modified) (6 diffs)
-
JavaScriptCore/heap/SlotVisitor.h (modified) (8 diffs)
-
JavaScriptCore/heap/SlotVisitorInlines.h (modified) (4 diffs)
-
JavaScriptCore/heap/SlotVisitorMacros.h (added)
-
JavaScriptCore/heap/Subspace.h (modified) (2 diffs)
-
JavaScriptCore/heap/SubspaceInlines.h (modified) (3 diffs)
-
JavaScriptCore/heap/VerifierSlotVisitor.cpp (added)
-
JavaScriptCore/heap/VerifierSlotVisitor.h (added)
-
JavaScriptCore/heap/VerifierSlotVisitorInlines.h (added)
-
JavaScriptCore/heap/VisitCounter.h (modified) (5 diffs)
-
JavaScriptCore/heap/WeakBlock.cpp (modified) (5 diffs)
-
JavaScriptCore/heap/WeakBlock.h (modified) (4 diffs)
-
JavaScriptCore/heap/WeakHandleOwner.cpp (modified) (2 diffs)
-
JavaScriptCore/heap/WeakHandleOwner.h (modified) (3 diffs)
-
JavaScriptCore/heap/WeakSet.cpp (modified) (1 diff)
-
JavaScriptCore/heap/WeakSet.h (modified) (3 diffs)
-
JavaScriptCore/interpreter/ShadowChicken.cpp (modified) (2 diffs)
-
JavaScriptCore/interpreter/ShadowChicken.h (modified) (4 diffs)
-
JavaScriptCore/jit/GCAwareJITStubRoutine.cpp (modified) (4 diffs)
-
JavaScriptCore/jit/GCAwareJITStubRoutine.h (modified) (4 diffs)
-
JavaScriptCore/jit/JITWorklist.cpp (modified) (1 diff)
-
JavaScriptCore/jit/PolymorphicCallStubRoutine.cpp (modified) (3 diffs)
-
JavaScriptCore/jit/PolymorphicCallStubRoutine.h (modified) (2 diffs)
-
JavaScriptCore/runtime/AbstractModuleRecord.cpp (modified) (3 diffs)
-
JavaScriptCore/runtime/AbstractModuleRecord.h (modified) (2 diffs)
-
JavaScriptCore/runtime/ArgList.cpp (modified) (3 diffs)
-
JavaScriptCore/runtime/ArgList.h (modified) (2 diffs)
-
JavaScriptCore/runtime/CacheableIdentifier.h (modified) (3 diffs)
-
JavaScriptCore/runtime/CacheableIdentifierInlines.h (modified) (2 diffs)
-
JavaScriptCore/runtime/ClassInfo.h (modified) (5 diffs)
-
JavaScriptCore/runtime/ClonedArguments.cpp (modified) (3 diffs)
-
JavaScriptCore/runtime/ClonedArguments.h (modified) (2 diffs)
-
JavaScriptCore/runtime/DirectArguments.cpp (modified) (3 diffs)
-
JavaScriptCore/runtime/DirectArguments.h (modified) (2 diffs)
-
JavaScriptCore/runtime/EvalExecutable.cpp (modified) (3 diffs)
-
JavaScriptCore/runtime/EvalExecutable.h (modified) (2 diffs)
-
JavaScriptCore/runtime/Exception.cpp (modified) (3 diffs)
-
JavaScriptCore/runtime/Exception.h (modified) (2 diffs)
-
JavaScriptCore/runtime/FunctionExecutable.cpp (modified) (3 diffs)
-
JavaScriptCore/runtime/FunctionExecutable.h (modified) (2 diffs)
-
JavaScriptCore/runtime/FunctionRareData.cpp (modified) (3 diffs)
-
JavaScriptCore/runtime/FunctionRareData.h (modified) (2 diffs)
-
JavaScriptCore/runtime/GenericArguments.h (modified) (2 diffs)
-
JavaScriptCore/runtime/GenericArgumentsInlines.h (modified) (3 diffs)
-
JavaScriptCore/runtime/GetterSetter.cpp (modified) (3 diffs)
-
JavaScriptCore/runtime/GetterSetter.h (modified) (2 diffs)
-
JavaScriptCore/runtime/HashMapImpl.cpp (modified) (5 diffs)
-
JavaScriptCore/runtime/HashMapImpl.h (modified) (3 diffs)
-
JavaScriptCore/runtime/InternalFunction.cpp (modified) (3 diffs)
-
JavaScriptCore/runtime/InternalFunction.h (modified) (2 diffs)
-
JavaScriptCore/runtime/IntlCollator.cpp (modified) (3 diffs)
-
JavaScriptCore/runtime/IntlCollator.h (modified) (2 diffs)
-
JavaScriptCore/runtime/IntlDateTimeFormat.cpp (modified) (3 diffs)
-
JavaScriptCore/runtime/IntlDateTimeFormat.h (modified) (2 diffs)
-
JavaScriptCore/runtime/IntlLocale.cpp (modified) (3 diffs)
-
JavaScriptCore/runtime/IntlLocale.h (modified) (2 diffs)
-
JavaScriptCore/runtime/IntlNumberFormat.cpp (modified) (3 diffs)
-
JavaScriptCore/runtime/IntlNumberFormat.h (modified) (2 diffs)
-
JavaScriptCore/runtime/IntlPluralRules.cpp (modified) (3 diffs)
-
JavaScriptCore/runtime/IntlPluralRules.h (modified) (2 diffs)
-
JavaScriptCore/runtime/IntlRelativeTimeFormat.cpp (modified) (3 diffs)
-
JavaScriptCore/runtime/IntlRelativeTimeFormat.h (modified) (2 diffs)
-
JavaScriptCore/runtime/IntlSegmentIterator.cpp (modified) (3 diffs)
-
JavaScriptCore/runtime/IntlSegmentIterator.h (modified) (2 diffs)
-
JavaScriptCore/runtime/IntlSegments.cpp (modified) (3 diffs)
-
JavaScriptCore/runtime/IntlSegments.h (modified) (2 diffs)
-
JavaScriptCore/runtime/JSArrayBufferView.cpp (modified) (3 diffs)
-
JavaScriptCore/runtime/JSArrayBufferView.h (modified) (2 diffs)
-
JavaScriptCore/runtime/JSArrayIterator.cpp (modified) (3 diffs)
-
JavaScriptCore/runtime/JSArrayIterator.h (modified) (2 diffs)
-
JavaScriptCore/runtime/JSAsyncGenerator.cpp (modified) (3 diffs)
-
JavaScriptCore/runtime/JSAsyncGenerator.h (modified) (2 diffs)
-
JavaScriptCore/runtime/JSBigInt.cpp (modified) (3 diffs)
-
JavaScriptCore/runtime/JSBigInt.h (modified) (2 diffs)
-
JavaScriptCore/runtime/JSBoundFunction.cpp (modified) (3 diffs)
-
JavaScriptCore/runtime/JSBoundFunction.h (modified) (2 diffs)
-
JavaScriptCore/runtime/JSCallee.cpp (modified) (3 diffs)
-
JavaScriptCore/runtime/JSCallee.h (modified) (2 diffs)
-
JavaScriptCore/runtime/JSCell.h (modified) (3 diffs)
-
JavaScriptCore/runtime/JSCellInlines.h (modified) (2 diffs)
-
JavaScriptCore/runtime/JSFinalizationRegistry.cpp (modified) (4 diffs)
-
JavaScriptCore/runtime/JSFinalizationRegistry.h (modified) (2 diffs)
-
JavaScriptCore/runtime/JSFunction.cpp (modified) (3 diffs)
-
JavaScriptCore/runtime/JSFunction.h (modified) (2 diffs)
-
JavaScriptCore/runtime/JSGenerator.cpp (modified) (3 diffs)
-
JavaScriptCore/runtime/JSGenerator.h (modified) (2 diffs)
-
JavaScriptCore/runtime/JSGenericTypedArrayView.h (modified) (2 diffs)
-
JavaScriptCore/runtime/JSGenericTypedArrayViewInlines.h (modified) (3 diffs)
-
JavaScriptCore/runtime/JSGlobalObject.cpp (modified) (3 diffs)
-
JavaScriptCore/runtime/JSGlobalObject.h (modified) (2 diffs)
-
JavaScriptCore/runtime/JSImmutableButterfly.cpp (modified) (3 diffs)
-
JavaScriptCore/runtime/JSImmutableButterfly.h (modified) (2 diffs)
-
JavaScriptCore/runtime/JSInternalFieldObjectImpl.h (modified) (2 diffs)
-
JavaScriptCore/runtime/JSInternalFieldObjectImplInlines.h (modified) (3 diffs)
-
JavaScriptCore/runtime/JSLexicalEnvironment.cpp (modified) (3 diffs)
-
JavaScriptCore/runtime/JSLexicalEnvironment.h (modified) (2 diffs)
-
JavaScriptCore/runtime/JSMapIterator.cpp (modified) (3 diffs)
-
JavaScriptCore/runtime/JSMapIterator.h (modified) (2 diffs)
-
JavaScriptCore/runtime/JSModuleEnvironment.cpp (modified) (3 diffs)
-
JavaScriptCore/runtime/JSModuleEnvironment.h (modified) (2 diffs)
-
JavaScriptCore/runtime/JSModuleNamespaceObject.cpp (modified) (3 diffs)
-
JavaScriptCore/runtime/JSModuleNamespaceObject.h (modified) (2 diffs)
-
JavaScriptCore/runtime/JSModuleRecord.cpp (modified) (3 diffs)
-
JavaScriptCore/runtime/JSModuleRecord.h (modified) (2 diffs)
-
JavaScriptCore/runtime/JSNativeStdFunction.cpp (modified) (3 diffs)
-
JavaScriptCore/runtime/JSNativeStdFunction.h (modified) (2 diffs)
-
JavaScriptCore/runtime/JSObject.cpp (modified) (7 diffs)
-
JavaScriptCore/runtime/JSObject.h (modified) (6 diffs)
-
JavaScriptCore/runtime/JSPromise.cpp (modified) (3 diffs)
-
JavaScriptCore/runtime/JSPromise.h (modified) (2 diffs)
-
JavaScriptCore/runtime/JSPropertyNameEnumerator.cpp (modified) (3 diffs)
-
JavaScriptCore/runtime/JSPropertyNameEnumerator.h (modified) (2 diffs)
-
JavaScriptCore/runtime/JSProxy.cpp (modified) (3 diffs)
-
JavaScriptCore/runtime/JSProxy.h (modified) (2 diffs)
-
JavaScriptCore/runtime/JSScope.cpp (modified) (3 diffs)
-
JavaScriptCore/runtime/JSScope.h (modified) (2 diffs)
-
JavaScriptCore/runtime/JSSegmentedVariableObject.cpp (modified) (2 diffs)
-
JavaScriptCore/runtime/JSSegmentedVariableObject.h (modified) (2 diffs)
-
JavaScriptCore/runtime/JSSetIterator.cpp (modified) (3 diffs)
-
JavaScriptCore/runtime/JSSetIterator.h (modified) (2 diffs)
-
JavaScriptCore/runtime/JSString.cpp (modified) (3 diffs)
-
JavaScriptCore/runtime/JSString.h (modified) (2 diffs)
-
JavaScriptCore/runtime/JSStringIterator.cpp (modified) (3 diffs)
-
JavaScriptCore/runtime/JSStringIterator.h (modified) (2 diffs)
-
JavaScriptCore/runtime/JSSymbolTableObject.cpp (modified) (3 diffs)
-
JavaScriptCore/runtime/JSSymbolTableObject.h (modified) (2 diffs)
-
JavaScriptCore/runtime/JSWeakObjectRef.cpp (modified) (3 diffs)
-
JavaScriptCore/runtime/JSWeakObjectRef.h (modified) (2 diffs)
-
JavaScriptCore/runtime/JSWithScope.cpp (modified) (3 diffs)
-
JavaScriptCore/runtime/JSWithScope.h (modified) (2 diffs)
-
JavaScriptCore/runtime/JSWrapperObject.cpp (modified) (3 diffs)
-
JavaScriptCore/runtime/JSWrapperObject.h (modified) (2 diffs)
-
JavaScriptCore/runtime/LazyClassStructure.cpp (modified) (2 diffs)
-
JavaScriptCore/runtime/LazyClassStructure.h (modified) (2 diffs)
-
JavaScriptCore/runtime/LazyProperty.h (modified) (2 diffs)
-
JavaScriptCore/runtime/LazyPropertyInlines.h (modified) (2 diffs)
-
JavaScriptCore/runtime/ModuleProgramExecutable.cpp (modified) (3 diffs)
-
JavaScriptCore/runtime/ModuleProgramExecutable.h (modified) (2 diffs)
-
JavaScriptCore/runtime/Options.cpp (modified) (2 diffs)
-
JavaScriptCore/runtime/OptionsList.h (modified) (1 diff)
-
JavaScriptCore/runtime/ProgramExecutable.cpp (modified) (3 diffs)
-
JavaScriptCore/runtime/ProgramExecutable.h (modified) (2 diffs)
-
JavaScriptCore/runtime/PropertyMapHashTable.h (modified) (2 diffs)
-
JavaScriptCore/runtime/PropertyTable.cpp (modified) (3 diffs)
-
JavaScriptCore/runtime/ProxyObject.cpp (modified) (3 diffs)
-
JavaScriptCore/runtime/ProxyObject.h (modified) (2 diffs)
-
JavaScriptCore/runtime/ProxyRevoke.cpp (modified) (3 diffs)
-
JavaScriptCore/runtime/ProxyRevoke.h (modified) (2 diffs)
-
JavaScriptCore/runtime/RegExpCachedResult.cpp (modified) (3 diffs)
-
JavaScriptCore/runtime/RegExpCachedResult.h (modified) (2 diffs)
-
JavaScriptCore/runtime/RegExpGlobalData.cpp (modified) (2 diffs)
-
JavaScriptCore/runtime/RegExpGlobalData.h (modified) (2 diffs)
-
JavaScriptCore/runtime/RegExpObject.cpp (modified) (3 diffs)
-
JavaScriptCore/runtime/RegExpObject.h (modified) (2 diffs)
-
JavaScriptCore/runtime/SamplingProfiler.cpp (modified) (2 diffs)
-
JavaScriptCore/runtime/SamplingProfiler.h (modified) (2 diffs)
-
JavaScriptCore/runtime/ScopedArguments.cpp (modified) (3 diffs)
-
JavaScriptCore/runtime/ScopedArguments.h (modified) (2 diffs)
-
JavaScriptCore/runtime/SimpleTypedArrayController.cpp (modified) (2 diffs)
-
JavaScriptCore/runtime/SimpleTypedArrayController.h (modified) (2 diffs)
-
JavaScriptCore/runtime/SmallStrings.cpp (modified) (3 diffs)
-
JavaScriptCore/runtime/SmallStrings.h (modified) (3 diffs)
-
JavaScriptCore/runtime/SparseArrayValueMap.cpp (modified) (3 diffs)
-
JavaScriptCore/runtime/SparseArrayValueMap.h (modified) (2 diffs)
-
JavaScriptCore/runtime/StackFrame.cpp (modified) (2 diffs)
-
JavaScriptCore/runtime/StackFrame.h (modified) (4 diffs)
-
JavaScriptCore/runtime/Structure.cpp (modified) (5 diffs)
-
JavaScriptCore/runtime/Structure.h (modified) (4 diffs)
-
JavaScriptCore/runtime/StructureChain.cpp (modified) (3 diffs)
-
JavaScriptCore/runtime/StructureChain.h (modified) (2 diffs)
-
JavaScriptCore/runtime/StructureRareData.cpp (modified) (3 diffs)
-
JavaScriptCore/runtime/StructureRareData.h (modified) (2 diffs)
-
JavaScriptCore/runtime/SymbolTable.cpp (modified) (3 diffs)
-
JavaScriptCore/runtime/SymbolTable.h (modified) (2 diffs)
-
JavaScriptCore/runtime/TypeProfilerLog.cpp (modified) (2 diffs)
-
JavaScriptCore/runtime/TypeProfilerLog.h (modified) (3 diffs)
-
JavaScriptCore/runtime/VM.h (modified) (4 diffs)
-
JavaScriptCore/runtime/WeakMapImpl.cpp (modified) (7 diffs)
-
JavaScriptCore/runtime/WeakMapImpl.h (modified) (4 diffs)
-
JavaScriptCore/tools/JSDollarVM.cpp (modified) (12 diffs)
-
JavaScriptCore/tools/JSDollarVM.h (modified) (2 diffs)
-
JavaScriptCore/wasm/WasmGlobal.cpp (modified) (3 diffs)
-
JavaScriptCore/wasm/WasmGlobal.h (modified) (2 diffs)
-
JavaScriptCore/wasm/WasmTable.cpp (modified) (3 diffs)
-
JavaScriptCore/wasm/WasmTable.h (modified) (2 diffs)
-
JavaScriptCore/wasm/js/JSToWasmICCallee.cpp (modified) (3 diffs)
-
JavaScriptCore/wasm/js/JSToWasmICCallee.h (modified) (2 diffs)
-
JavaScriptCore/wasm/js/JSWebAssemblyCodeBlock.cpp (modified) (3 diffs)
-
JavaScriptCore/wasm/js/JSWebAssemblyCodeBlock.h (modified) (2 diffs)
-
JavaScriptCore/wasm/js/JSWebAssemblyGlobal.cpp (modified) (3 diffs)
-
JavaScriptCore/wasm/js/JSWebAssemblyGlobal.h (modified) (2 diffs)
-
JavaScriptCore/wasm/js/JSWebAssemblyInstance.cpp (modified) (3 diffs)
-
JavaScriptCore/wasm/js/JSWebAssemblyInstance.h (modified) (2 diffs)
-
JavaScriptCore/wasm/js/JSWebAssemblyMemory.cpp (modified) (3 diffs)
-
JavaScriptCore/wasm/js/JSWebAssemblyMemory.h (modified) (2 diffs)
-
JavaScriptCore/wasm/js/JSWebAssemblyModule.cpp (modified) (3 diffs)
-
JavaScriptCore/wasm/js/JSWebAssemblyModule.h (modified) (2 diffs)
-
JavaScriptCore/wasm/js/JSWebAssemblyTable.cpp (modified) (3 diffs)
-
JavaScriptCore/wasm/js/JSWebAssemblyTable.h (modified) (2 diffs)
-
JavaScriptCore/wasm/js/WebAssemblyFunction.cpp (modified) (3 diffs)
-
JavaScriptCore/wasm/js/WebAssemblyFunction.h (modified) (2 diffs)
-
JavaScriptCore/wasm/js/WebAssemblyFunctionBase.cpp (modified) (3 diffs)
-
JavaScriptCore/wasm/js/WebAssemblyFunctionBase.h (modified) (2 diffs)
-
JavaScriptCore/wasm/js/WebAssemblyModuleRecord.cpp (modified) (3 diffs)
-
JavaScriptCore/wasm/js/WebAssemblyModuleRecord.h (modified) (2 diffs)
-
JavaScriptCore/wasm/js/WebAssemblyWrapperFunction.cpp (modified) (3 diffs)
-
JavaScriptCore/wasm/js/WebAssemblyWrapperFunction.h (modified) (2 diffs)
-
WebCore/ChangeLog (modified) (1 diff)
-
WebCore/Modules/indexeddb/IDBObjectStore.cpp (modified) (3 diffs)
-
WebCore/Modules/indexeddb/IDBObjectStore.h (modified) (2 diffs)
-
WebCore/Modules/indexeddb/IDBTransaction.cpp (modified) (3 diffs)
-
WebCore/Modules/indexeddb/IDBTransaction.h (modified) (2 diffs)
-
WebCore/Modules/webaudio/AudioBuffer.cpp (modified) (2 diffs)
-
WebCore/Modules/webaudio/AudioBuffer.h (modified) (2 diffs)
-
WebCore/bindings/js/DOMGCOutputConstraint.cpp (modified) (3 diffs)
-
WebCore/bindings/js/DOMGCOutputConstraint.h (modified) (2 diffs)
-
WebCore/bindings/js/JSAbortControllerCustom.cpp (modified) (2 diffs)
-
WebCore/bindings/js/JSAbortSignalCustom.cpp (modified) (2 diffs)
-
WebCore/bindings/js/JSAttrCustom.cpp (modified) (3 diffs)
-
WebCore/bindings/js/JSAudioBufferCustom.cpp (modified) (2 diffs)
-
WebCore/bindings/js/JSAudioTrackCustom.cpp (modified) (2 diffs)
-
WebCore/bindings/js/JSAudioTrackListCustom.cpp (modified) (2 diffs)
-
WebCore/bindings/js/JSAudioWorkletProcessorCustom.cpp (modified) (3 diffs)
-
WebCore/bindings/js/JSCSSRuleCustom.cpp (modified) (2 diffs)
-
WebCore/bindings/js/JSCSSRuleListCustom.cpp (modified) (2 diffs)
-
WebCore/bindings/js/JSCSSStyleDeclarationCustom.cpp (modified) (2 diffs)
-
WebCore/bindings/js/JSCallbackData.cpp (modified) (2 diffs)
-
WebCore/bindings/js/JSCallbackData.h (modified) (2 diffs)
-
WebCore/bindings/js/JSCanvasRenderingContext2DCustom.cpp (modified) (3 diffs)
-
WebCore/bindings/js/JSCustomEventCustom.cpp (modified) (3 diffs)
-
WebCore/bindings/js/JSDOMBuiltinConstructorBase.cpp (modified) (3 diffs)
-
WebCore/bindings/js/JSDOMBuiltinConstructorBase.h (modified) (2 diffs)
-
WebCore/bindings/js/JSDOMGlobalObject.cpp (modified) (3 diffs)
-
WebCore/bindings/js/JSDOMGlobalObject.h (modified) (2 diffs)
-
WebCore/bindings/js/JSDOMGuardedObject.h (modified) (2 diffs)
-
WebCore/bindings/js/JSDOMQuadCustom.cpp (modified) (3 diffs)
-
WebCore/bindings/js/JSDOMWindowCustom.cpp (modified) (3 diffs)
-
WebCore/bindings/js/JSDeprecatedCSSOMValueCustom.cpp (modified) (2 diffs)
-
WebCore/bindings/js/JSDocumentCustom.cpp (modified) (2 diffs)
-
WebCore/bindings/js/JSErrorEventCustom.cpp (modified) (2 diffs)
-
WebCore/bindings/js/JSEventListener.cpp (modified) (3 diffs)
-
WebCore/bindings/js/JSEventListener.h (modified) (2 diffs)
-
WebCore/bindings/js/JSEventTargetCustom.cpp (modified) (2 diffs)
-
WebCore/bindings/js/JSFetchEventCustom.cpp (modified) (2 diffs)
-
WebCore/bindings/js/JSHTMLCanvasElementCustom.cpp (modified) (2 diffs)
-
WebCore/bindings/js/JSHTMLTemplateElementCustom.cpp (modified) (3 diffs)
-
WebCore/bindings/js/JSHistoryCustom.cpp (modified) (2 diffs)
-
WebCore/bindings/js/JSIDBCursorCustom.cpp (modified) (3 diffs)
-
WebCore/bindings/js/JSIDBCursorWithValueCustom.cpp (modified) (3 diffs)
-
WebCore/bindings/js/JSIDBIndexCustom.cpp (modified) (2 diffs)
-
WebCore/bindings/js/JSIDBObjectStoreCustom.cpp (modified) (2 diffs)
-
WebCore/bindings/js/JSIDBRequestCustom.cpp (modified) (3 diffs)
-
WebCore/bindings/js/JSIDBTransactionCustom.cpp (modified) (2 diffs)
-
WebCore/bindings/js/JSIntersectionObserverCustom.cpp (modified) (3 diffs)
-
WebCore/bindings/js/JSIntersectionObserverEntryCustom.cpp (modified) (3 diffs)
-
WebCore/bindings/js/JSMessageChannelCustom.cpp (modified) (3 diffs)
-
WebCore/bindings/js/JSMessageEventCustom.cpp (modified) (3 diffs)
-
WebCore/bindings/js/JSMessagePortCustom.cpp (modified) (3 diffs)
-
WebCore/bindings/js/JSMutationObserverCustom.cpp (modified) (2 diffs)
-
WebCore/bindings/js/JSMutationRecordCustom.cpp (modified) (2 diffs)
-
WebCore/bindings/js/JSNavigatorCustom.cpp (modified) (2 diffs)
-
WebCore/bindings/js/JSNodeCustom.cpp (modified) (4 diffs)
-
WebCore/bindings/js/JSNodeIteratorCustom.cpp (modified) (3 diffs)
-
WebCore/bindings/js/JSNodeListCustom.cpp (modified) (2 diffs)
-
WebCore/bindings/js/JSOffscreenCanvasRenderingContext2DCustom.cpp (modified) (3 diffs)
-
WebCore/bindings/js/JSPaintRenderingContext2DCustom.cpp (modified) (3 diffs)
-
WebCore/bindings/js/JSPaintWorkletGlobalScopeCustom.cpp (modified) (3 diffs)
-
WebCore/bindings/js/JSPaymentMethodChangeEventCustom.cpp (modified) (3 diffs)
-
WebCore/bindings/js/JSPaymentResponseCustom.cpp (modified) (2 diffs)
-
WebCore/bindings/js/JSPerformanceObserverCustom.cpp (modified) (2 diffs)
-
WebCore/bindings/js/JSPopStateEventCustom.cpp (modified) (2 diffs)
-
WebCore/bindings/js/JSPromiseRejectionEventCustom.cpp (modified) (2 diffs)
-
WebCore/bindings/js/JSResizeObserverCustom.cpp (modified) (3 diffs)
-
WebCore/bindings/js/JSResizeObserverEntryCustom.cpp (modified) (3 diffs)
-
WebCore/bindings/js/JSSVGViewSpecCustom.cpp (modified) (3 diffs)
-
WebCore/bindings/js/JSServiceWorkerGlobalScopeCustom.cpp (modified) (3 diffs)
-
WebCore/bindings/js/JSStaticRangeCustom.cpp (modified) (1 diff)
-
WebCore/bindings/js/JSStyleSheetCustom.cpp (modified) (2 diffs)
-
WebCore/bindings/js/JSTextTrackCueCustom.cpp (modified) (4 diffs)
-
WebCore/bindings/js/JSTextTrackCustom.cpp (modified) (2 diffs)
-
WebCore/bindings/js/JSTextTrackListCustom.cpp (modified) (2 diffs)
-
WebCore/bindings/js/JSTreeWalkerCustom.cpp (modified) (3 diffs)
-
WebCore/bindings/js/JSUndoItemCustom.cpp (modified) (3 diffs)
-
WebCore/bindings/js/JSValueInWrappedObject.h (modified) (4 diffs)
-
WebCore/bindings/js/JSVideoTrackCustom.cpp (modified) (2 diffs)
-
WebCore/bindings/js/JSVideoTrackListCustom.cpp (modified) (2 diffs)
-
WebCore/bindings/js/JSWebGL2RenderingContextCustom.cpp (modified) (3 diffs)
-
WebCore/bindings/js/JSWebGLRenderingContextCustom.cpp (modified) (3 diffs)
-
WebCore/bindings/js/JSWorkerGlobalScopeBase.cpp (modified) (3 diffs)
-
WebCore/bindings/js/JSWorkerGlobalScopeBase.h (modified) (2 diffs)
-
WebCore/bindings/js/JSWorkerGlobalScopeCustom.cpp (modified) (3 diffs)
-
WebCore/bindings/js/JSWorkerNavigatorCustom.cpp (modified) (2 diffs)
-
WebCore/bindings/js/JSWorkletGlobalScopeBase.cpp (modified) (3 diffs)
-
WebCore/bindings/js/JSWorkletGlobalScopeBase.h (modified) (2 diffs)
-
WebCore/bindings/js/JSXMLHttpRequestCustom.cpp (modified) (3 diffs)
-
WebCore/bindings/js/JSXPathResultCustom.cpp (modified) (3 diffs)
-
WebCore/bindings/js/WebCoreTypedArrayController.cpp (modified) (2 diffs)
-
WebCore/bindings/js/WebCoreTypedArrayController.h (modified) (2 diffs)
-
WebCore/bindings/scripts/CodeGeneratorJS.pm (modified) (14 diffs)
-
WebCore/bindings/scripts/test/JS/JSDOMWindow.cpp (modified) (2 diffs)
-
WebCore/bindings/scripts/test/JS/JSDedicatedWorkerGlobalScope.cpp (modified) (2 diffs)
-
WebCore/bindings/scripts/test/JS/JSExposedToWorkerAndWindow.cpp (modified) (3 diffs)
-
WebCore/bindings/scripts/test/JS/JSExposedToWorkerAndWindow.h (modified) (1 diff)
-
WebCore/bindings/scripts/test/JS/JSPaintWorkletGlobalScope.cpp (modified) (2 diffs)
-
WebCore/bindings/scripts/test/JS/JSServiceWorkerGlobalScope.cpp (modified) (2 diffs)
-
WebCore/bindings/scripts/test/JS/JSTestCEReactions.cpp (modified) (3 diffs)
-
WebCore/bindings/scripts/test/JS/JSTestCEReactions.h (modified) (1 diff)
-
WebCore/bindings/scripts/test/JS/JSTestCEReactionsStringifier.cpp (modified) (3 diffs)
-
WebCore/bindings/scripts/test/JS/JSTestCEReactionsStringifier.h (modified) (1 diff)
-
WebCore/bindings/scripts/test/JS/JSTestCallTracer.cpp (modified) (3 diffs)
-
WebCore/bindings/scripts/test/JS/JSTestCallTracer.h (modified) (1 diff)
-
WebCore/bindings/scripts/test/JS/JSTestClassWithJSBuiltinConstructor.cpp (modified) (3 diffs)
-
WebCore/bindings/scripts/test/JS/JSTestClassWithJSBuiltinConstructor.h (modified) (1 diff)
-
WebCore/bindings/scripts/test/JS/JSTestConditionalIncludes.cpp (modified) (3 diffs)
-
WebCore/bindings/scripts/test/JS/JSTestConditionalIncludes.h (modified) (1 diff)
-
WebCore/bindings/scripts/test/JS/JSTestConditionallyReadWrite.cpp (modified) (3 diffs)
-
WebCore/bindings/scripts/test/JS/JSTestConditionallyReadWrite.h (modified) (1 diff)
-
WebCore/bindings/scripts/test/JS/JSTestDOMJIT.cpp (modified) (2 diffs)
-
WebCore/bindings/scripts/test/JS/JSTestDefaultToJSON.cpp (modified) (3 diffs)
-
WebCore/bindings/scripts/test/JS/JSTestDefaultToJSON.h (modified) (1 diff)
-
WebCore/bindings/scripts/test/JS/JSTestDefaultToJSONFilteredByExposed.cpp (modified) (3 diffs)
-
WebCore/bindings/scripts/test/JS/JSTestDefaultToJSONFilteredByExposed.h (modified) (1 diff)
-
WebCore/bindings/scripts/test/JS/JSTestDefaultToJSONIndirectInheritance.cpp (modified) (2 diffs)
-
WebCore/bindings/scripts/test/JS/JSTestDefaultToJSONInherit.cpp (modified) (2 diffs)
-
WebCore/bindings/scripts/test/JS/JSTestDefaultToJSONInheritFinal.cpp (modified) (2 diffs)
-
WebCore/bindings/scripts/test/JS/JSTestDomainSecurity.cpp (modified) (3 diffs)
-
WebCore/bindings/scripts/test/JS/JSTestDomainSecurity.h (modified) (1 diff)
-
WebCore/bindings/scripts/test/JS/JSTestEnabledBySetting.cpp (modified) (3 diffs)
-
WebCore/bindings/scripts/test/JS/JSTestEnabledBySetting.h (modified) (1 diff)
-
WebCore/bindings/scripts/test/JS/JSTestEnabledForContext.cpp (modified) (3 diffs)
-
WebCore/bindings/scripts/test/JS/JSTestEnabledForContext.h (modified) (1 diff)
-
WebCore/bindings/scripts/test/JS/JSTestEventConstructor.cpp (modified) (2 diffs)
-
WebCore/bindings/scripts/test/JS/JSTestEventTarget.cpp (modified) (2 diffs)
-
WebCore/bindings/scripts/test/JS/JSTestException.cpp (modified) (3 diffs)
-
WebCore/bindings/scripts/test/JS/JSTestException.h (modified) (1 diff)
-
WebCore/bindings/scripts/test/JS/JSTestGenerateIsReachable.cpp (modified) (3 diffs)
-
WebCore/bindings/scripts/test/JS/JSTestGenerateIsReachable.h (modified) (1 diff)
-
WebCore/bindings/scripts/test/JS/JSTestGlobalObject.cpp (modified) (3 diffs)
-
WebCore/bindings/scripts/test/JS/JSTestGlobalObject.h (modified) (1 diff)
-
WebCore/bindings/scripts/test/JS/JSTestIndexedSetterNoIdentifier.cpp (modified) (3 diffs)
-
WebCore/bindings/scripts/test/JS/JSTestIndexedSetterNoIdentifier.h (modified) (1 diff)
-
WebCore/bindings/scripts/test/JS/JSTestIndexedSetterThrowingException.cpp (modified) (3 diffs)
-
WebCore/bindings/scripts/test/JS/JSTestIndexedSetterThrowingException.h (modified) (1 diff)
-
WebCore/bindings/scripts/test/JS/JSTestIndexedSetterWithIdentifier.cpp (modified) (3 diffs)
-
WebCore/bindings/scripts/test/JS/JSTestIndexedSetterWithIdentifier.h (modified) (1 diff)
-
WebCore/bindings/scripts/test/JS/JSTestInterface.cpp (modified) (4 diffs)
-
WebCore/bindings/scripts/test/JS/JSTestInterface.h (modified) (1 diff)
-
WebCore/bindings/scripts/test/JS/JSTestInterfaceLeadingUnderscore.cpp (modified) (3 diffs)
-
WebCore/bindings/scripts/test/JS/JSTestInterfaceLeadingUnderscore.h (modified) (1 diff)
-
WebCore/bindings/scripts/test/JS/JSTestIterable.cpp (modified) (4 diffs)
-
WebCore/bindings/scripts/test/JS/JSTestIterable.h (modified) (1 diff)
-
WebCore/bindings/scripts/test/JS/JSTestJSBuiltinConstructor.cpp (modified) (2 diffs)
-
WebCore/bindings/scripts/test/JS/JSTestLegacyFactoryFunction.cpp (modified) (3 diffs)
-
WebCore/bindings/scripts/test/JS/JSTestLegacyFactoryFunction.h (modified) (1 diff)
-
WebCore/bindings/scripts/test/JS/JSTestLegacyNoInterfaceObject.cpp (modified) (3 diffs)
-
WebCore/bindings/scripts/test/JS/JSTestLegacyNoInterfaceObject.h (modified) (1 diff)
-
WebCore/bindings/scripts/test/JS/JSTestLegacyOverrideBuiltIns.cpp (modified) (3 diffs)
-
WebCore/bindings/scripts/test/JS/JSTestLegacyOverrideBuiltIns.h (modified) (1 diff)
-
WebCore/bindings/scripts/test/JS/JSTestMapLike.cpp (modified) (3 diffs)
-
WebCore/bindings/scripts/test/JS/JSTestMapLike.h (modified) (1 diff)
-
WebCore/bindings/scripts/test/JS/JSTestMapLikeWithOverriddenOperations.cpp (modified) (3 diffs)
-
WebCore/bindings/scripts/test/JS/JSTestMapLikeWithOverriddenOperations.h (modified) (1 diff)
-
WebCore/bindings/scripts/test/JS/JSTestNamedAndIndexedSetterNoIdentifier.cpp (modified) (3 diffs)
-
WebCore/bindings/scripts/test/JS/JSTestNamedAndIndexedSetterNoIdentifier.h (modified) (1 diff)
-
WebCore/bindings/scripts/test/JS/JSTestNamedAndIndexedSetterThrowingException.cpp (modified) (3 diffs)
-
WebCore/bindings/scripts/test/JS/JSTestNamedAndIndexedSetterThrowingException.h (modified) (1 diff)
-
WebCore/bindings/scripts/test/JS/JSTestNamedAndIndexedSetterWithIdentifier.cpp (modified) (3 diffs)
-
WebCore/bindings/scripts/test/JS/JSTestNamedAndIndexedSetterWithIdentifier.h (modified) (1 diff)
-
WebCore/bindings/scripts/test/JS/JSTestNamedDeleterNoIdentifier.cpp (modified) (3 diffs)
-
WebCore/bindings/scripts/test/JS/JSTestNamedDeleterNoIdentifier.h (modified) (1 diff)
-
WebCore/bindings/scripts/test/JS/JSTestNamedDeleterThrowingException.cpp (modified) (3 diffs)
-
WebCore/bindings/scripts/test/JS/JSTestNamedDeleterThrowingException.h (modified) (1 diff)
-
WebCore/bindings/scripts/test/JS/JSTestNamedDeleterWithIdentifier.cpp (modified) (3 diffs)
-
WebCore/bindings/scripts/test/JS/JSTestNamedDeleterWithIdentifier.h (modified) (1 diff)
-
WebCore/bindings/scripts/test/JS/JSTestNamedDeleterWithIndexedGetter.cpp (modified) (3 diffs)
-
WebCore/bindings/scripts/test/JS/JSTestNamedDeleterWithIndexedGetter.h (modified) (1 diff)
-
WebCore/bindings/scripts/test/JS/JSTestNamedGetterCallWith.cpp (modified) (3 diffs)
-
WebCore/bindings/scripts/test/JS/JSTestNamedGetterCallWith.h (modified) (1 diff)
-
WebCore/bindings/scripts/test/JS/JSTestNamedGetterNoIdentifier.cpp (modified) (3 diffs)
-
WebCore/bindings/scripts/test/JS/JSTestNamedGetterNoIdentifier.h (modified) (1 diff)
-
WebCore/bindings/scripts/test/JS/JSTestNamedGetterWithIdentifier.cpp (modified) (3 diffs)
-
WebCore/bindings/scripts/test/JS/JSTestNamedGetterWithIdentifier.h (modified) (1 diff)
-
WebCore/bindings/scripts/test/JS/JSTestNamedSetterNoIdentifier.cpp (modified) (3 diffs)
-
WebCore/bindings/scripts/test/JS/JSTestNamedSetterNoIdentifier.h (modified) (1 diff)
-
WebCore/bindings/scripts/test/JS/JSTestNamedSetterThrowingException.cpp (modified) (3 diffs)
-
WebCore/bindings/scripts/test/JS/JSTestNamedSetterThrowingException.h (modified) (1 diff)
-
WebCore/bindings/scripts/test/JS/JSTestNamedSetterWithIdentifier.cpp (modified) (3 diffs)
-
WebCore/bindings/scripts/test/JS/JSTestNamedSetterWithIdentifier.h (modified) (1 diff)
-
WebCore/bindings/scripts/test/JS/JSTestNamedSetterWithIndexedGetter.cpp (modified) (3 diffs)
-
WebCore/bindings/scripts/test/JS/JSTestNamedSetterWithIndexedGetter.h (modified) (1 diff)
-
WebCore/bindings/scripts/test/JS/JSTestNamedSetterWithIndexedGetterAndSetter.cpp (modified) (3 diffs)
-
WebCore/bindings/scripts/test/JS/JSTestNamedSetterWithIndexedGetterAndSetter.h (modified) (1 diff)
-
WebCore/bindings/scripts/test/JS/JSTestNamedSetterWithLegacyOverrideBuiltIns.cpp (modified) (3 diffs)
-
WebCore/bindings/scripts/test/JS/JSTestNamedSetterWithLegacyOverrideBuiltIns.h (modified) (1 diff)
-
WebCore/bindings/scripts/test/JS/JSTestNamedSetterWithLegacyUnforgeableProperties.cpp (modified) (3 diffs)
-
WebCore/bindings/scripts/test/JS/JSTestNamedSetterWithLegacyUnforgeableProperties.h (modified) (1 diff)
-
WebCore/bindings/scripts/test/JS/JSTestNamedSetterWithLegacyUnforgeablePropertiesAndLegacyOverrideBuiltIns.cpp (modified) (3 diffs)
-
WebCore/bindings/scripts/test/JS/JSTestNamedSetterWithLegacyUnforgeablePropertiesAndLegacyOverrideBuiltIns.h (modified) (1 diff)
-
WebCore/bindings/scripts/test/JS/JSTestNode.cpp (modified) (3 diffs)
-
WebCore/bindings/scripts/test/JS/JSTestObj.cpp (modified) (5 diffs)
-
WebCore/bindings/scripts/test/JS/JSTestObj.h (modified) (2 diffs)
-
WebCore/bindings/scripts/test/JS/JSTestOperationConditional.cpp (modified) (3 diffs)
-
WebCore/bindings/scripts/test/JS/JSTestOperationConditional.h (modified) (1 diff)
-
WebCore/bindings/scripts/test/JS/JSTestOverloadedConstructors.cpp (modified) (3 diffs)
-
WebCore/bindings/scripts/test/JS/JSTestOverloadedConstructors.h (modified) (1 diff)
-
WebCore/bindings/scripts/test/JS/JSTestOverloadedConstructorsWithSequence.cpp (modified) (3 diffs)
-
WebCore/bindings/scripts/test/JS/JSTestOverloadedConstructorsWithSequence.h (modified) (1 diff)
-
WebCore/bindings/scripts/test/JS/JSTestPluginInterface.cpp (modified) (3 diffs)
-
WebCore/bindings/scripts/test/JS/JSTestPluginInterface.h (modified) (1 diff)
-
WebCore/bindings/scripts/test/JS/JSTestPromiseRejectionEvent.cpp (modified) (2 diffs)
-
WebCore/bindings/scripts/test/JS/JSTestReadOnlyMapLike.cpp (modified) (3 diffs)
-
WebCore/bindings/scripts/test/JS/JSTestReadOnlyMapLike.h (modified) (1 diff)
-
WebCore/bindings/scripts/test/JS/JSTestReadOnlySetLike.cpp (modified) (3 diffs)
-
WebCore/bindings/scripts/test/JS/JSTestReadOnlySetLike.h (modified) (1 diff)
-
WebCore/bindings/scripts/test/JS/JSTestReportExtraMemoryCost.cpp (modified) (5 diffs)
-
WebCore/bindings/scripts/test/JS/JSTestReportExtraMemoryCost.h (modified) (2 diffs)
-
WebCore/bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp (modified) (5 diffs)
-
WebCore/bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.h (modified) (2 diffs)
-
WebCore/bindings/scripts/test/JS/JSTestSetLike.cpp (modified) (3 diffs)
-
WebCore/bindings/scripts/test/JS/JSTestSetLike.h (modified) (1 diff)
-
WebCore/bindings/scripts/test/JS/JSTestSetLikeWithOverriddenOperations.cpp (modified) (3 diffs)
-
WebCore/bindings/scripts/test/JS/JSTestSetLikeWithOverriddenOperations.h (modified) (1 diff)
-
WebCore/bindings/scripts/test/JS/JSTestStringifier.cpp (modified) (3 diffs)
-
WebCore/bindings/scripts/test/JS/JSTestStringifier.h (modified) (1 diff)
-
WebCore/bindings/scripts/test/JS/JSTestStringifierAnonymousOperation.cpp (modified) (3 diffs)
-
WebCore/bindings/scripts/test/JS/JSTestStringifierAnonymousOperation.h (modified) (1 diff)
-
WebCore/bindings/scripts/test/JS/JSTestStringifierNamedOperation.cpp (modified) (3 diffs)
-
WebCore/bindings/scripts/test/JS/JSTestStringifierNamedOperation.h (modified) (1 diff)
-
WebCore/bindings/scripts/test/JS/JSTestStringifierOperationImplementedAs.cpp (modified) (3 diffs)
-
WebCore/bindings/scripts/test/JS/JSTestStringifierOperationImplementedAs.h (modified) (1 diff)
-
WebCore/bindings/scripts/test/JS/JSTestStringifierOperationNamedToString.cpp (modified) (3 diffs)
-
WebCore/bindings/scripts/test/JS/JSTestStringifierOperationNamedToString.h (modified) (1 diff)
-
WebCore/bindings/scripts/test/JS/JSTestStringifierReadOnlyAttribute.cpp (modified) (3 diffs)
-
WebCore/bindings/scripts/test/JS/JSTestStringifierReadOnlyAttribute.h (modified) (1 diff)
-
WebCore/bindings/scripts/test/JS/JSTestStringifierReadWriteAttribute.cpp (modified) (3 diffs)
-
WebCore/bindings/scripts/test/JS/JSTestStringifierReadWriteAttribute.h (modified) (1 diff)
-
WebCore/bindings/scripts/test/JS/JSTestTypedefs.cpp (modified) (3 diffs)
-
WebCore/bindings/scripts/test/JS/JSTestTypedefs.h (modified) (1 diff)
-
WebCore/bindings/scripts/test/JS/JSWorkerGlobalScope.cpp (modified) (2 diffs)
-
WebCore/bindings/scripts/test/JS/JSWorkletGlobalScope.cpp (modified) (2 diffs)
-
WebCore/dom/ActiveDOMCallback.h (modified) (3 diffs)
-
WebCore/dom/EventListener.h (modified) (3 diffs)
-
WebCore/dom/EventTarget.cpp (modified) (3 diffs)
-
WebCore/dom/EventTarget.h (modified) (2 diffs)
-
WebCore/dom/MutationRecord.cpp (modified) (5 diffs)
-
WebCore/dom/MutationRecord.h (modified) (3 diffs)
-
WebCore/dom/NodeFilterCondition.h (modified) (1 diff)
-
WebCore/dom/StaticRange.cpp (modified) (2 diffs)
-
WebCore/dom/StaticRange.h (modified) (3 diffs)
-
WebCore/html/canvas/WebGL2RenderingContext.cpp (modified) (2 diffs)
-
WebCore/html/canvas/WebGL2RenderingContext.h (modified) (2 diffs)
-
WebCore/html/canvas/WebGLFramebuffer.cpp (modified) (6 diffs)
-
WebCore/html/canvas/WebGLFramebuffer.h (modified) (4 diffs)
-
WebCore/html/canvas/WebGLProgram.cpp (modified) (2 diffs)
-
WebCore/html/canvas/WebGLProgram.h (modified) (3 diffs)
-
WebCore/html/canvas/WebGLRenderingContextBase.cpp (modified) (2 diffs)
-
WebCore/html/canvas/WebGLRenderingContextBase.h (modified) (3 diffs)
-
WebCore/html/canvas/WebGLTransformFeedback.cpp (modified) (3 diffs)
-
WebCore/html/canvas/WebGLTransformFeedback.h (modified) (3 diffs)
-
WebCore/html/canvas/WebGLVertexArrayObjectBase.cpp (modified) (3 diffs)
-
WebCore/html/canvas/WebGLVertexArrayObjectBase.h (modified) (3 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/JavaScriptCore/API/JSAPIWrapperObject.h
r253365 r273138 1 1 /* 2 * Copyright (C) 2013-20 19Apple Inc. All rights reserved.2 * Copyright (C) 2013-2021 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 42 42 43 43 void finishCreation(VM&); 44 static void visitChildren(JSCell*, JSC::SlotVisitor&);44 DECLARE_VISIT_CHILDREN_WITH_MODIFIER(JS_EXPORT_PRIVATE); 45 45 46 46 void* wrappedObject() { return m_wrappedObject; } -
trunk/Source/JavaScriptCore/API/JSAPIWrapperObject.mm
r267727 r273138 1 1 /* 2 * Copyright (C) 2013-20 18Apple Inc. All rights reserved.2 * Copyright (C) 2013-2021 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 38 38 public: 39 39 void finalize(JSC::Handle<JSC::Unknown>, void*) final; 40 bool isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown>, void* context, JSC:: SlotVisitor&, const char**) final;40 bool isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown>, void* context, JSC::AbstractSlotVisitor&, const char**) final; 41 41 }; 42 42 … … 57 57 } 58 58 59 bool JSAPIWrapperObjectHandleOwner::isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown> handle, void*, JSC:: SlotVisitor& visitor, const char**)59 bool JSAPIWrapperObjectHandleOwner::isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown> handle, void*, JSC::AbstractSlotVisitor& visitor, const char**) 60 60 { 61 61 JSC::JSAPIWrapperObject* wrapperObject = JSC::jsCast<JSC::JSAPIWrapperObject*>(handle.get().asCell()); … … 64 64 if (!wrapperObject->wrappedObject()) 65 65 return false; 66 return visitor. vm().heap.isMarked(wrapperObject->structure()->globalObject()) && visitor.containsOpaqueRoot(wrapperObject->wrappedObject());66 return visitor.isMarked(wrapperObject->structure()->globalObject()) && visitor.containsOpaqueRoot(wrapperObject->wrappedObject()); 67 67 } 68 68 … … 73 73 static JSC_DECLARE_CUSTOM_GETTER(callbackGetterJSAPIWrapperObjectCallbackObject); 74 74 static JSC_DECLARE_CUSTOM_GETTER(staticFunctionGetterJSAPIWrapperObjectCallbackObject); 75 76 DEFINE_VISIT_CHILDREN_WITH_MODIFIER(template<>, JSCallbackObject<JSAPIWrapperObject>); 75 77 76 78 template <> const ClassInfo JSCallbackObject<JSAPIWrapperObject>::s_info = { "JSAPIWrapperObject", &Base::s_info, nullptr, nullptr, CREATE_METHOD_TABLE(JSCallbackObject) }; … … 124 126 } 125 127 126 void JSAPIWrapperObject::visitChildren(JSCell* cell, JSC::SlotVisitor& visitor) 128 template<typename Visitor> 129 void JSAPIWrapperObject::visitChildrenImpl(JSCell* cell, Visitor& visitor) 127 130 { 128 131 JSAPIWrapperObject* thisObject = JSC::jsCast<JSAPIWrapperObject*>(cell); … … 133 136 scanExternalObjectGraph(visitor.vm(), visitor, wrappedObject); 134 137 } 138 139 DEFINE_VISIT_CHILDREN_WITH_MODIFIER(JS_EXPORT_PRIVATE, JSAPIWrapperObject); 135 140 136 141 template <> -
trunk/Source/JavaScriptCore/API/JSCallbackObject.cpp
r267727 r273138 1 1 /* 2 * Copyright (C) 2006-20 17 Apple Inc.All rights reserved.2 * Copyright (C) 2006-2021 Apple Inc. All rights reserved. 3 3 * Copyright (C) 2007 Eric Seidel <eric@webkit.org> 4 4 * … … 41 41 static JSC_DECLARE_CUSTOM_GETTER(callbackGetterJSGlobalObjectCallbackObject); 42 42 static JSC_DECLARE_CUSTOM_GETTER(staticFunctionGetterJSGlobalObjectCallbackObject); 43 44 DEFINE_VISIT_CHILDREN_WITH_MODIFIER(template<>, JSCallbackObject<JSNonFinalObject>); 45 DEFINE_VISIT_CHILDREN_WITH_MODIFIER(template<>, JSCallbackObject<JSGlobalObject>); 43 46 44 47 // Define the two types of JSCallbackObjects we support. -
trunk/Source/JavaScriptCore/API/JSCallbackObject.h
r272885 r273138 1 1 /* 2 * Copyright (C) 2006-202 0Apple Inc. All rights reserved.2 * Copyright (C) 2006-2021 Apple Inc. All rights reserved. 3 3 * Copyright (C) 2007 Eric Seidel <eric@webkit.org> 4 4 * … … 70 70 } 71 71 72 void visitChildren(SlotVisitor& visitor) 72 DECLARE_VISIT_CHILDREN; 73 74 template<typename Visitor> 75 void visitChildren(Visitor& visitor) 73 76 { 74 77 JSPrivatePropertyMap* properties = m_privateProperties.get(); … … 104 107 } 105 108 106 void visitChildren(SlotVisitor& visitor) 109 template<typename Visitor> 110 void visitChildren(Visitor& visitor) 107 111 { 108 112 LockHolder locker(m_lock); … … 217 221 static CallData getCallData(JSCell*); 218 222 219 static void visitChildren(JSCell* cell, SlotVisitor& visitor) 220 { 221 JSCallbackObject* thisObject = jsCast<JSCallbackObject*>(cell); 222 ASSERT_GC_OBJECT_INHERITS((static_cast<Parent*>(thisObject)), JSCallbackObject<Parent>::info()); 223 Parent::visitChildren(thisObject, visitor); 224 thisObject->m_callbackObjectData->visitChildren(visitor); 225 } 223 DECLARE_VISIT_CHILDREN; 226 224 227 225 void init(JSGlobalObject*); … … 244 242 }; 245 243 244 template <class Parent> 245 template<typename Visitor> 246 void JSCallbackObject<Parent>::visitChildrenImpl(JSCell* cell, Visitor& visitor) 247 { 248 JSCallbackObject* thisObject = jsCast<JSCallbackObject*>(cell); 249 ASSERT_GC_OBJECT_INHERITS((static_cast<Parent*>(thisObject)), JSCallbackObject<Parent>::info()); 250 Parent::visitChildren(thisObject, visitor); 251 thisObject->m_callbackObjectData->visitChildren(visitor); 252 } 253 246 254 } // namespace JSC 247 255 -
trunk/Source/JavaScriptCore/API/JSManagedValue.mm
r272936 r273138 1 1 /* 2 * Copyright (C) 2013 , 2016Apple Inc. All rights reserved.2 * Copyright (C) 2013-2021 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 44 44 public: 45 45 void finalize(JSC::Handle<JSC::Unknown>, void* context) final; 46 bool isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown>, void* context, JSC:: SlotVisitor&, const char**) final;46 bool isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown>, void* context, JSC::AbstractSlotVisitor&, const char**) final; 47 47 }; 48 48 … … 180 180 @end 181 181 182 bool JSManagedValueHandleOwner::isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown>, void* context, JSC:: SlotVisitor& visitor, const char** reason)182 bool JSManagedValueHandleOwner::isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown>, void* context, JSC::AbstractSlotVisitor& visitor, const char** reason) 183 183 { 184 184 if (UNLIKELY(reason)) -
trunk/Source/JavaScriptCore/API/JSMarkingConstraintPrivate.cpp
r272830 r273138 37 37 38 38 struct Marker : JSMarker { 39 SlotVisitor* visitor;39 AbstractSlotVisitor* visitor; 40 40 }; 41 41 … … 45 45 return true; // Null is an immortal object. 46 46 47 return static_cast<Marker*>(markerRef)->visitor-> vm().heap.isMarked(toJS(objectRef));47 return static_cast<Marker*>(markerRef)->visitor->isMarked(toJS(objectRef)); 48 48 } 49 49 … … 74 74 toCString("Amc", constraintIndex, "(", RawPointer(bitwise_cast<void*>(constraintCallback)), ")"), 75 75 toCString("API Marking Constraint #", constraintIndex, " (", RawPointer(bitwise_cast<void*>(constraintCallback)), ", ", RawPointer(userData), ")"), 76 [constraintCallback, userData] (SlotVisitor& visitor) {76 MAKE_MARKING_CONSTRAINT_EXECUTOR_PAIR(([constraintCallback, userData] (AbstractSlotVisitor& visitor) { 77 77 Marker marker; 78 78 marker.IsMarked = isMarked; … … 81 81 82 82 constraintCallback(&marker, userData); 83 } ,83 })), 84 84 volatility, 85 85 ConstraintConcurrency::Sequential); -
trunk/Source/JavaScriptCore/API/JSVirtualMachine.mm
r272936 r273138 1 1 /* 2 * Copyright (C) 2013-20 17Apple Inc. All rights reserved.2 * Copyright (C) 2013-2021 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 313 313 @end 314 314 315 static void scanExternalObjectGraph(JSC::VM& vm, JSC:: SlotVisitor& visitor, void* root, bool lockAcquired)315 static void scanExternalObjectGraph(JSC::VM& vm, JSC::AbstractSlotVisitor& visitor, void* root, bool lockAcquired) 316 316 { 317 317 @autoreleasepool { … … 345 345 } 346 346 347 void scanExternalObjectGraph(JSC::VM& vm, JSC:: SlotVisitor& visitor, void* root)347 void scanExternalObjectGraph(JSC::VM& vm, JSC::AbstractSlotVisitor& visitor, void* root) 348 348 { 349 349 bool lockAcquired = false; … … 351 351 } 352 352 353 void scanExternalRememberedSet(JSC::VM& vm, JSC:: SlotVisitor& visitor)353 void scanExternalRememberedSet(JSC::VM& vm, JSC::AbstractSlotVisitor& visitor) 354 354 { 355 355 @autoreleasepool { -
trunk/Source/JavaScriptCore/API/JSVirtualMachineInternal.h
r254152 r273138 1 1 /* 2 * Copyright (C) 2013 , 2017Apple Inc. All rights reserved.2 * Copyright (C) 2013-2021 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 33 33 namespace JSC { 34 34 class VM; 35 class SlotVisitor;35 class AbstractSlotVisitor; 36 36 } 37 37 … … 55 55 #endif // defined(__OBJC__) 56 56 57 void scanExternalObjectGraph(JSC::VM&, JSC:: SlotVisitor&, void* root);58 void scanExternalRememberedSet(JSC::VM&, JSC:: SlotVisitor&);57 void scanExternalObjectGraph(JSC::VM&, JSC::AbstractSlotVisitor&, void* root); 58 void scanExternalRememberedSet(JSC::VM&, JSC::AbstractSlotVisitor&); 59 59 60 60 #endif // JSC_OBJC_API_ENABLED -
trunk/Source/JavaScriptCore/API/MarkedJSValueRefArray.cpp
r261755 r273138 1 1 /* 2 * Copyright (C) 2020 Apple Inc. All rights reserved.2 * Copyright (C) 2020-2021 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 47 47 } 48 48 49 void MarkedJSValueRefArray::visitAggregate(SlotVisitor& visitor) 49 template<typename Visitor> 50 void MarkedJSValueRefArray::visitAggregate(Visitor& visitor) 50 51 { 51 52 JSValueRef* buffer = data(); … … 63 64 } 64 65 66 template void MarkedJSValueRefArray::visitAggregate(AbstractSlotVisitor&); 67 template void MarkedJSValueRefArray::visitAggregate(SlotVisitor&); 68 65 69 } // namespace JSC -
trunk/Source/JavaScriptCore/API/MarkedJSValueRefArray.h
r258774 r273138 1 1 /* 2 * Copyright (C) 2020 Apple Inc. All rights reserved.2 * Copyright (C) 2020-2021 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 63 63 } 64 64 65 void visitAggregate(SlotVisitor&);65 template<typename Visitor> void visitAggregate(Visitor&); 66 66 67 67 private: -
trunk/Source/JavaScriptCore/API/glib/JSAPIWrapperGlobalObject.cpp
r267727 r273138 59 59 static JSC_DECLARE_CUSTOM_GETTER(callbackGetterJSAPIWrapperGlobalObjectCallbackObject); 60 60 static JSC_DECLARE_CUSTOM_GETTER(staticFunctionGetterJSAPIWrapperGlobalObjectCallbackObject); 61 62 DEFINE_VISIT_CHILDREN_WITH_MODIFIER(template<>, JSCallbackObject<JSAPIWrapperGlobalObject>); 61 63 62 64 template <> const ClassInfo JSCallbackObject<JSAPIWrapperGlobalObject>::s_info = { "JSAPIWrapperGlobalObject", &Base::s_info, nullptr, nullptr, CREATE_METHOD_TABLE(JSCallbackObject) }; … … 145 147 } 146 148 147 void JSAPIWrapperGlobalObject::visitChildren(JSCell* cell, JSC::SlotVisitor& visitor)148 {149 Base::visitChildren(cell, visitor);150 }151 152 149 } // namespace JSC -
trunk/Source/JavaScriptCore/API/glib/JSAPIWrapperGlobalObject.h
r253365 r273138 40 40 41 41 void finishCreation(VM&); 42 static void visitChildren(JSCell*, JSC::SlotVisitor&);43 42 44 43 JSCGLibWrapperObject* wrappedObject() const { return m_wrappedObject; } -
trunk/Source/JavaScriptCore/API/glib/JSAPIWrapperObjectGLib.cpp
r267727 r273138 28 28 #include "JSAPIWrapperObject.h" 29 29 30 #include "AbstractSlotVisitor.h" 30 31 #include "JSCGLibWrapperObject.h" 31 32 #include "JSCInlines.h" … … 37 38 public: 38 39 void finalize(JSC::Handle<JSC::Unknown>, void*) final; 39 bool isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown>, void* context, JSC:: SlotVisitor&, const char**) final;40 bool isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown>, void* context, JSC::AbstractSlotVisitor&, const char**) final; 40 41 }; 41 42 … … 56 57 } 57 58 58 bool JSAPIWrapperObjectHandleOwner::isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown> handle, void*, JSC:: SlotVisitor& visitor, const char**)59 bool JSAPIWrapperObjectHandleOwner::isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown> handle, void*, JSC::AbstractSlotVisitor& visitor, const char**) 59 60 { 60 61 JSC::JSAPIWrapperObject* wrapperObject = JSC::jsCast<JSC::JSAPIWrapperObject*>(handle.get().asCell()); … … 72 73 static JSC_DECLARE_CUSTOM_GETTER(callbackGetterJSAPIWrapperObjectCallbackObject); 73 74 static JSC_DECLARE_CUSTOM_GETTER(staticFunctionGetterJSAPIWrapperObjectCallbackObject); 75 76 DEFINE_VISIT_CHILDREN_WITH_MODIFIER(template<>, JSCallbackObject<JSAPIWrapperObject>); 74 77 75 78 template <> const ClassInfo JSCallbackObject<JSAPIWrapperObject>::s_info = { "JSAPIWrapperObject", &Base::s_info, nullptr, nullptr, CREATE_METHOD_TABLE(JSCallbackObject) }; … … 156 159 } 157 160 158 void JSAPIWrapperObject::visitChildren(JSCell* cell, JSC::SlotVisitor& visitor) 161 template<typename Visitor> 162 void JSAPIWrapperObject::visitChildrenImpl(JSCell* cell, Visitor& visitor) 159 163 { 160 164 Base::visitChildren(cell, visitor); 161 165 } 162 166 167 DEFINE_VISIT_CHILDREN_WITH_MODIFIER(JS_EXPORT_PRIVATE, JSAPIWrapperObject); 168 163 169 } // namespace JSC -
trunk/Source/JavaScriptCore/CMakeLists.txt
r272885 r273138 614 614 domjit/DOMJITSignature.h 615 615 616 heap/AbstractSlotVisitor.h 617 heap/AbstractSlotVisitorInlines.h 616 618 heap/AlignedMemoryAllocator.h 617 619 heap/AllocationFailureMode.h … … 679 681 heap/MarkedSpace.h 680 682 heap/MarkingConstraint.h 683 heap/MarkingConstraintExecutorPair.h 681 684 heap/MutatorState.h 682 685 heap/PackedCellPtr.h … … 688 691 heap/SlotVisitor.h 689 692 heap/SlotVisitorInlines.h 693 heap/SlotVisitorMacros.h 690 694 heap/Strong.h 691 695 heap/StrongInlines.h … … 694 698 heap/Synchronousness.h 695 699 heap/TinyBloomFilter.h 700 heap/VerifierSlotVisitor.h 696 701 heap/VisitRaceKey.h 697 702 heap/Weak.h -
trunk/Source/JavaScriptCore/ChangeLog
r273135 r273138 1 2021-02-19 Mark Lam <mark.lam@apple.com> 2 3 Implement a GC verifier. 4 https://bugs.webkit.org/show_bug.cgi?id=217274 5 rdar://56255683 6 7 Reviewed by Filip Pizlo and Saam Barati. 8 9 The idea behind the GC verifier is that in the GC End phase before we finalize 10 and sweep, we'll do a simple stop the world synchronous full GC with the 11 VerifierSlotVisitor. The VerifierSlotVisitor will collect it's own information 12 on whether a JS cell should be marked or not. After this verifier GC pass, we'll 13 compare the mark results. 14 15 If the verifier GC says a cell should be marked, then the real GC should have 16 marked the cell. The reverse is not true: if the verifier does not mark a cell, 17 it is still OK for the real GC to mark it. For example, in an eden GC, all old 18 generation cells would be considered mark by the real GC though the verifier would 19 know better if they are already dead. 20 21 Implementation details: 22 23 1. SlotVisitor (only used by the real GC) now inherits from a new abstract class, 24 AbstractSlotVisitor. 25 26 VerifierSlotVisitor (only used by the verifier GC) also inherits from 27 AbstractSlotVisitor. 28 29 2. AbstractSlotVisitor declares many virtual methods. 30 31 SlotVisitor implements some of these virtual methods as inline and final. 32 If the client is invoking one these methods and knows that it will be operating 33 on a SlotVisitor, the method being final allows it to be inlined into the client 34 instead of going through the virtual dispatch. 35 36 For the VerifierSlotVisitor, these methods will always be invoked by virtual 37 dispatch via the AbstractSlotVisitor abstraction. 38 39 3. Almost all methods that takes a SlotVisitor previously (with a few exceptions) 40 will now be templatized, and specialized to either take a SlotVisitor or an 41 AbstractSlotVisitor. 42 43 The cell MethodTable will now have 2 versions of visitChildren and visitOutputConstraints: 44 one for SlotVisitor, and one for AbstractSlotVisitor. 45 46 The reason we don't wire the 2nd version to VerifierSlotVisitor (instead of 47 AbstractSlotVisitor) is because we don't need the GC verifier to run at top 48 speed (though we don't want it to be too slow). Also, having hooks for using 49 an AbstractSlotVisitor gives us more utility for implementing other types of 50 GC checkers / analyzers in the future as subclasses of AbstractSlotVisitor. 51 52 4. Some minority of methods that used to take a SlotVisitor but are not critical 53 to performance, will now just take an AbstractSlotVisitor instead. For example, 54 see TypeProfilerLog::visit(). 55 56 5. isReachableFromOpaqueRoots() methods will also only take an AbstractSlotVisitor. 57 58 The reason this is OK is because isReachableFromOpaqueRoots() only uses the 59 visitor's addOpaqueRoot() and containsOpaqueRoot() methods, which are implemented 60 in the AbstractSlotVisitor itself. 61 62 For SlotVisitor, the m_opaqueRoot field will reference Heap::m_opaqueRoots. 63 For VerifierSlotVisitor, the m_opaqueRoot field will reference its own 64 opaque roots storage. 65 66 This implementation of addOpaqueRoot() is perf neutral for SlotVisitor because 67 where it would previously invoke m_heap.m_opaqueRoots.add(), it will now 68 invoke m_opaqueRoot.add() instead where m_opaqueRoot points to m_heap.m_opaqueRoots. 69 70 Ditto for AbstractSlotVisitor::containsOpaqueRoot(). 71 72 6. When reifying a templatized visit method, we do it in 2 ways: 73 74 a. Implement the template method as an ALWAYS_INLINE Impl method, and have 75 2 visit methods (taking a SlotVisitor and an AbstractSlotVisitor respectively) 76 inline the Impl method. For example, see JSObject::visitChildrenImpl(). 77 78 b. Just templatize the visit method, and explicitly instantiate it with a SlotVisitor 79 and an AbstractSlotVisitor. For example, see DesiredTransition::visitChildren(). 80 81 The reason we need form (a) is if: 82 83 i. we need to export the visit methods. 84 For example, see JSObject:visitChildren(). 85 86 Note: A Clang engineer told me that "there's no way to export an explicit 87 instantiation that will make it a strong symbol." This is because "C++ does not 88 provide any standard way to guarantee that an explicit instantiation is unique, 89 and Clang hasn't added any extension to do so." 90 91 ii. the visit method is an override of a virtual method. 92 For example, see DFG::Scannable::visitChildren() and DFG::Graph::visitChildren(). 93 94 Otherwise, we'll prefer form (b) as it is natural C++. 95 96 7. Because templatizing all the visit methods requires a lot of boiler plate code, 97 we introduce some macros in SlotVisitorMacros.h to reduce some of the boiler 98 plate burden. 99 100 We especially try to do this for methods of form (a) (see (6) above) which 101 require more boiler plate. 102 103 8. The driver of the real GC is MarkingConstraintSet::executeConvergence() which 104 runs with the MarkingConstraintSolver. 105 106 The driver of the verifier GC is Heap::verifyGC(), which has a loop to drain 107 marked objects and execute contraints. 108 109 9. The GC verifier is built in by default but disabled. The relevant options are: 110 JSC_verifyGC and JSC_verboseVerifyGC. 111 112 JSC_verifyGC will enable the GC verifier. 113 114 If JSC_verifyGC is true and the verifier finds a cell that is 115 erroneously not marked by the real GC, it will dump an error message and then 116 crash with a RELEASE_ASSERT. 117 118 JSC_verboseVerifyGC will enable the GC verifier along with some more heavy 119 weight record keeping (i.e. tracking the parent / owner cell that marked a 120 cell, and capturing the call stack when the marked cell is appended to the mark 121 stack). 122 123 If JSC_verboseVerifyGC is true and the verifier finds a cell that is 124 erroneously not marked by the real GC, it will dump the parent cell and 125 captured stack along with an error message before crashing. This extra 126 information provides the starting point for debugging GC bugs found by the 127 verifier. 128 129 Enabling JSC_verboseVerifyGC will automatically enable JSC_verifyGC. 130 131 10. Non-determinism in the real GC. 132 133 The GC verifier's algorithm relies on the real GC being deterministic. However, 134 there are a few places where this is not true: 135 136 a. Marking conservative roots on the mutator stacks. 137 138 By the time the verifier GC runs (in the GC End phase), the mutator stacks 139 will look completely different than what the real GC saw. To work around 140 this, if the verifier is enabled, then every conservative root captured by 141 the real GC will also be added to the verifier's mark stack. 142 143 When running verifyGC() in the End phase, the conservative root scans will be 144 treated as no-ops. 145 146 b. CodeBlock::shouldJettisonDueToOldAge() may return a different value. 147 148 This is possible because the codeBlock may be in mid compilation while the 149 real GC is in progress. 150 151 CodeBlock::shouldVisitStrongly() calls shouldJettisonDueToOldAge(), and may 152 see an old LLInt codeBlock whose timeToLive has expired. As a result, 153 shouldJettisonDueToOldAge() returns true and shouldVisitStrongly() will 154 return false for the real GC, leading to it not marking the codeBlock. 155 156 However, before the verifier GC gets to run, baseline compilation on the 157 codeBlock may finish. As a baseline codeBlock now, it gets a longer time 158 to live. 159 160 As a result, when the verifier GC runs, shouldJettisonDueToOldAge() will 161 return false, and shouldVisitStrongly() in turn returns true. This results 162 in the verifier GC marking the codeBlock (and its children) when the real 163 GC did not, which leads to a false error. This is not a real error because 164 if the real GC did not mark the code block, it will simply get jettisoned, 165 and can be reinstantiated when needed later. There's no GC bug here. 166 However, we do need to work around this to prevent the false error for the 167 GC verifier. 168 169 The work around is to introduce a CodeBlock::m_visitChildrenSkippedDueToOldAge 170 flag that records what the real GC decided in shouldJettisonDueToOldAge(). 171 This allows the verifier GC to replay the same decision and get a consistent 172 result. 173 174 c. CodeBlock::propagateTransitions() will only do a best effort at visiting 175 cells in ICs, etc. If a cell is not already strongly marked by the time 176 CodeBlock::propagateTransitions() checks it, propagateTransitions() will 177 not mark other cells that are reachable from it. 178 179 Since the real GC does marking on concurrent threads, marking order is not 180 deterministic. CodeBlock::propagateTransitions() may or may not see a cell 181 as already marked by the time it runs. 182 183 The verifier GC may mark some of these cells in a different order than the 184 real GC. As a result, in the verifier GC, CodeBlock::propagateTransitions() 185 may see a cell as marked (and therefore, visit its children) when it did 186 not for the real GC. 187 188 To work around this, we currently add a SuppressGCVerifierScope to 189 CodeBlock::propagateTransitions() to pessimize the verifier, and assume that 190 propagateTransitions() will mark nothing. 191 192 SuppressGCVerifierScope is a blunt hammer that stops the verifier GC from 193 analyzing all cells potentially reachable via CodeBlock::propagateTransitions(). 194 In the future, it may be possible to refine this and track which cells were 195 actually skipped over (like we did for shouldJettisonDueToOldAge()). 196 However, this decision tracking needs to be done in the real GC, and can be 197 very expensive in terms of performance. The shouldJettisonDueToOldAge() 198 case is rare, and as such lends itself to this more fine grain tracking 199 without hurting performance. The decisions made in CodeBlock::propagateTransitions() 200 are not as rare, and hence, it would hurt performance if we did fine grain 201 decision tracking there (at least or now). 202 203 11. Marking in the verifier GC. 204 205 The real GC tracks cell marks using a Bitmap in the MarkedBlocks. The verifier 206 GC keeps tracks of MarkedBlock cell marks using a Bitmap on the side, stashed 207 away in a HashMap. 208 209 To improve the verifier marking performance, we reserve a void* m_verifierMemo 210 pointer in the MarkedBlock, which the verifier will employ to cache its 211 MarkedBlockData for that MarkedBlock. This allows the verifier to get to its 212 side Bitmap without having to do a HashMap look up for every cell. 213 214 Size-wise, in the current 16K MarkBlocks, there is previously room for 1005.5 215 atoms after reserving space for the MarkedBlock::Footer. Since we can never 216 allocate half an atom anyway, that .5 atom gives us the 8 bytes we need for 217 the m_verifierMemo pointer, which we'll put in the MarkedBlock::Footer. With 218 this patch, each MarkedBlock will now have exactly 1005 atoms available for 219 allocation. 220 221 I ran JetStream2 and Speedometer2 locally on a MacBookAir10,1, MacBookPro16,1, 222 and a 12.9” 4th Gen iPad Pro. The benchmark results for these were all neutral. 223 224 The design of the GC verifier is such that it incurs almost no additional runtime 225 memory overhead if not in use. Code size does increase significantly because 226 there are now 2 variants of most of the methods that take a SlotVisitor. 227 228 When in use, the additional runtime memory is encapsulated in the 229 VerifierSlotVisitor, which is instantiated and destructed every GC cycle. Hence, 230 it can affect peak memory usage during GCs, but the cost is transient. It does 231 not persist past the GC End phase. 232 233 * API/JSAPIWrapperObject.h: 234 * API/JSAPIWrapperObject.mm: 235 (JSAPIWrapperObjectHandleOwner::isReachableFromOpaqueRoots): 236 (JSC::JSAPIWrapperObject::visitChildrenImpl): 237 (JSC::JSAPIWrapperObject::visitChildren): Deleted. 238 * API/JSCallbackObject.cpp: 239 * API/JSCallbackObject.h: 240 (JSC::JSCallbackObjectData::visitChildren): 241 (JSC::JSCallbackObjectData::JSPrivatePropertyMap::visitChildren): 242 (JSC::JSCallbackObject<Parent>::visitChildrenImpl): 243 * API/JSManagedValue.mm: 244 (JSManagedValueHandleOwner::isReachableFromOpaqueRoots): 245 * API/JSMarkingConstraintPrivate.cpp: 246 (JSC::isMarked): 247 (JSContextGroupAddMarkingConstraint): 248 * API/JSVirtualMachine.mm: 249 (scanExternalObjectGraph): 250 (scanExternalRememberedSet): 251 * API/JSVirtualMachineInternal.h: 252 * API/MarkedJSValueRefArray.cpp: 253 (JSC::MarkedJSValueRefArray::visitAggregate): 254 * API/MarkedJSValueRefArray.h: 255 * API/glib/JSAPIWrapperGlobalObject.cpp: 256 (JSC::JSAPIWrapperGlobalObject::visitChildren): Deleted. 257 * API/glib/JSAPIWrapperGlobalObject.h: 258 * API/glib/JSAPIWrapperObjectGLib.cpp: 259 (JSAPIWrapperObjectHandleOwner::isReachableFromOpaqueRoots): 260 (JSC::JSAPIWrapperObject::visitChildrenImpl): 261 (JSC::JSAPIWrapperObject::visitChildren): Deleted. 262 * CMakeLists.txt: 263 * JavaScriptCore.xcodeproj/project.pbxproj: 264 * Scripts/wkbuiltins/builtins_generate_internals_wrapper_header.py: 265 (BuiltinsInternalsWrapperHeaderGenerator): 266 * Scripts/wkbuiltins/builtins_generate_internals_wrapper_implementation.py: 267 (BuiltinsInternalsWrapperImplementationGenerator.generate_visit_method): 268 * Scripts/wkbuiltins/builtins_templates.py: 269 * Sources.txt: 270 * bytecode/AccessCase.cpp: 271 (JSC::AccessCase::propagateTransitions const): 272 (JSC::AccessCase::visitAggregateImpl const): 273 (JSC::AccessCase::visitAggregate const): Deleted. 274 * bytecode/AccessCase.h: 275 * bytecode/ByValInfo.cpp: 276 (JSC::ByValInfo::visitAggregateImpl): 277 (JSC::ByValInfo::visitAggregate): Deleted. 278 * bytecode/ByValInfo.h: 279 * bytecode/CheckPrivateBrandStatus.cpp: 280 (JSC::CheckPrivateBrandStatus::visitAggregateImpl): 281 (JSC::CheckPrivateBrandStatus::markIfCheap): 282 (JSC::CheckPrivateBrandStatus::visitAggregate): Deleted. 283 * bytecode/CheckPrivateBrandStatus.h: 284 * bytecode/CheckPrivateBrandVariant.cpp: 285 (JSC::CheckPrivateBrandVariant::markIfCheap): 286 (JSC::CheckPrivateBrandVariant::visitAggregateImpl): 287 (JSC::CheckPrivateBrandVariant::visitAggregate): Deleted. 288 * bytecode/CheckPrivateBrandVariant.h: 289 * bytecode/CodeBlock.cpp: 290 (JSC::CodeBlock::CodeBlock): 291 (JSC::CodeBlock::visitChildrenImpl): 292 (JSC::CodeBlock::visitChildren): 293 (JSC::CodeBlock::shouldVisitStrongly): 294 (JSC::CodeBlock::shouldJettisonDueToOldAge): 295 (JSC::shouldMarkTransition): 296 (JSC::CodeBlock::propagateTransitions): 297 (JSC::CodeBlock::determineLiveness): 298 (JSC::CodeBlock::finalizeUnconditionally): 299 (JSC::CodeBlock::visitOSRExitTargets): 300 (JSC::CodeBlock::stronglyVisitStrongReferences): 301 (JSC::CodeBlock::stronglyVisitWeakReferences): 302 * bytecode/CodeBlock.h: 303 * bytecode/DeleteByIdVariant.cpp: 304 (JSC::DeleteByIdVariant::visitAggregateImpl): 305 (JSC::DeleteByIdVariant::markIfCheap): 306 (JSC::DeleteByIdVariant::visitAggregate): Deleted. 307 * bytecode/DeleteByIdVariant.h: 308 * bytecode/DeleteByStatus.cpp: 309 (JSC::DeleteByStatus::visitAggregateImpl): 310 (JSC::DeleteByStatus::markIfCheap): 311 (JSC::DeleteByStatus::visitAggregate): Deleted. 312 * bytecode/DeleteByStatus.h: 313 * bytecode/DirectEvalCodeCache.cpp: 314 (JSC::DirectEvalCodeCache::visitAggregateImpl): 315 (JSC::DirectEvalCodeCache::visitAggregate): Deleted. 316 * bytecode/DirectEvalCodeCache.h: 317 * bytecode/ExecutableToCodeBlockEdge.cpp: 318 (JSC::ExecutableToCodeBlockEdge::visitChildrenImpl): 319 (JSC::ExecutableToCodeBlockEdge::visitOutputConstraintsImpl): 320 (JSC::ExecutableToCodeBlockEdge::runConstraint): 321 (JSC::ExecutableToCodeBlockEdge::visitChildren): Deleted. 322 (JSC::ExecutableToCodeBlockEdge::visitOutputConstraints): Deleted. 323 * bytecode/ExecutableToCodeBlockEdge.h: 324 * bytecode/GetByIdVariant.cpp: 325 (JSC::GetByIdVariant::visitAggregateImpl): 326 (JSC::GetByIdVariant::markIfCheap): 327 (JSC::GetByIdVariant::visitAggregate): Deleted. 328 * bytecode/GetByIdVariant.h: 329 * bytecode/GetByStatus.cpp: 330 (JSC::GetByStatus::visitAggregateImpl): 331 (JSC::GetByStatus::markIfCheap): 332 (JSC::GetByStatus::visitAggregate): Deleted. 333 * bytecode/GetByStatus.h: 334 * bytecode/InByIdStatus.cpp: 335 (JSC::InByIdStatus::markIfCheap): 336 * bytecode/InByIdStatus.h: 337 * bytecode/InByIdVariant.cpp: 338 (JSC::InByIdVariant::markIfCheap): 339 * bytecode/InByIdVariant.h: 340 * bytecode/InternalFunctionAllocationProfile.h: 341 (JSC::InternalFunctionAllocationProfile::visitAggregate): 342 * bytecode/ObjectAllocationProfile.h: 343 (JSC::ObjectAllocationProfileBase::visitAggregate): 344 (JSC::ObjectAllocationProfileWithPrototype::visitAggregate): 345 * bytecode/PolymorphicAccess.cpp: 346 (JSC::PolymorphicAccess::propagateTransitions const): 347 (JSC::PolymorphicAccess::visitAggregateImpl): 348 (JSC::PolymorphicAccess::visitAggregate): Deleted. 349 * bytecode/PolymorphicAccess.h: 350 * bytecode/PutByIdStatus.cpp: 351 (JSC::PutByIdStatus::markIfCheap): 352 * bytecode/PutByIdStatus.h: 353 * bytecode/PutByIdVariant.cpp: 354 (JSC::PutByIdVariant::markIfCheap): 355 * bytecode/PutByIdVariant.h: 356 * bytecode/RecordedStatuses.cpp: 357 (JSC::RecordedStatuses::visitAggregateImpl): 358 (JSC::RecordedStatuses::markIfCheap): 359 (JSC::RecordedStatuses::visitAggregate): Deleted. 360 * bytecode/RecordedStatuses.h: 361 * bytecode/SetPrivateBrandStatus.cpp: 362 (JSC::SetPrivateBrandStatus::visitAggregateImpl): 363 (JSC::SetPrivateBrandStatus::markIfCheap): 364 (JSC::SetPrivateBrandStatus::visitAggregate): Deleted. 365 * bytecode/SetPrivateBrandStatus.h: 366 * bytecode/SetPrivateBrandVariant.cpp: 367 (JSC::SetPrivateBrandVariant::markIfCheap): 368 (JSC::SetPrivateBrandVariant::visitAggregateImpl): 369 (JSC::SetPrivateBrandVariant::visitAggregate): Deleted. 370 * bytecode/SetPrivateBrandVariant.h: 371 * bytecode/StructureSet.cpp: 372 (JSC::StructureSet::markIfCheap const): 373 * bytecode/StructureSet.h: 374 * bytecode/StructureStubInfo.cpp: 375 (JSC::StructureStubInfo::visitAggregateImpl): 376 (JSC::StructureStubInfo::propagateTransitions): 377 (JSC::StructureStubInfo::visitAggregate): Deleted. 378 * bytecode/StructureStubInfo.h: 379 * bytecode/UnlinkedCodeBlock.cpp: 380 (JSC::UnlinkedCodeBlock::visitChildrenImpl): 381 (JSC::UnlinkedCodeBlock::visitChildren): Deleted. 382 * bytecode/UnlinkedCodeBlock.h: 383 * bytecode/UnlinkedFunctionExecutable.cpp: 384 (JSC::UnlinkedFunctionExecutable::visitChildrenImpl): 385 (JSC::UnlinkedFunctionExecutable::visitChildren): Deleted. 386 * bytecode/UnlinkedFunctionExecutable.h: 387 * debugger/DebuggerScope.cpp: 388 (JSC::DebuggerScope::visitChildrenImpl): 389 (JSC::DebuggerScope::visitChildren): Deleted. 390 * debugger/DebuggerScope.h: 391 * dfg/DFGDesiredTransitions.cpp: 392 (JSC::DFG::DesiredTransition::visitChildren): 393 (JSC::DFG::DesiredTransitions::visitChildren): 394 * dfg/DFGDesiredTransitions.h: 395 * dfg/DFGDesiredWeakReferences.cpp: 396 (JSC::DFG::DesiredWeakReferences::visitChildren): 397 * dfg/DFGDesiredWeakReferences.h: 398 * dfg/DFGGraph.cpp: 399 (JSC::DFG::Graph::visitChildrenImpl): 400 (JSC::DFG::Graph::visitChildren): 401 * dfg/DFGGraph.h: 402 * dfg/DFGPlan.cpp: 403 (JSC::DFG::Plan::checkLivenessAndVisitChildren): 404 (JSC::DFG::Plan::isKnownToBeLiveDuringGC): 405 (JSC::DFG::Plan::isKnownToBeLiveAfterGC): 406 * dfg/DFGPlan.h: 407 * dfg/DFGPlanInlines.h: 408 (JSC::DFG::Plan::iterateCodeBlocksForGC): 409 * dfg/DFGSafepoint.cpp: 410 (JSC::DFG::Safepoint::checkLivenessAndVisitChildren): 411 (JSC::DFG::Safepoint::isKnownToBeLiveDuringGC): 412 (JSC::DFG::Safepoint::isKnownToBeLiveAfterGC): 413 * dfg/DFGSafepoint.h: 414 * dfg/DFGScannable.h: 415 * dfg/DFGWorklist.cpp: 416 (JSC::DFG::Worklist::visitWeakReferences): 417 (JSC::DFG::Worklist::removeDeadPlans): 418 * dfg/DFGWorklist.h: 419 * dfg/DFGWorklistInlines.h: 420 (JSC::DFG::iterateCodeBlocksForGC): 421 (JSC::DFG::Worklist::iterateCodeBlocksForGC): 422 * heap/AbstractSlotVisitor.h: Added. 423 (JSC::AbstractSlotVisitor::Context::cell const): 424 (JSC::AbstractSlotVisitor::SuppressGCVerifierScope::SuppressGCVerifierScope): 425 (JSC::AbstractSlotVisitor::SuppressGCVerifierScope::~SuppressGCVerifierScope): 426 (JSC::AbstractSlotVisitor::DefaultMarkingViolationAssertionScope::DefaultMarkingViolationAssertionScope): 427 (JSC::AbstractSlotVisitor::collectorMarkStack): 428 (JSC::AbstractSlotVisitor::mutatorMarkStack): 429 (JSC::AbstractSlotVisitor::collectorMarkStack const): 430 (JSC::AbstractSlotVisitor::mutatorMarkStack const): 431 (JSC::AbstractSlotVisitor::isEmpty): 432 (JSC::AbstractSlotVisitor::setIgnoreNewOpaqueRoots): 433 (JSC::AbstractSlotVisitor::visitCount const): 434 (JSC::AbstractSlotVisitor::addToVisitCount): 435 (JSC::AbstractSlotVisitor::rootMarkReason const): 436 (JSC::AbstractSlotVisitor::setRootMarkReason): 437 (JSC::AbstractSlotVisitor::didRace): 438 (JSC::AbstractSlotVisitor::codeName const): 439 (JSC::SetRootMarkReasonScope::SetRootMarkReasonScope): 440 (JSC::SetRootMarkReasonScope::~SetRootMarkReasonScope): 441 * heap/AbstractSlotVisitorInlines.h: Added. 442 (JSC::AbstractSlotVisitor::Context::Context): 443 (JSC::AbstractSlotVisitor::Context::~Context): 444 (JSC::AbstractSlotVisitor::AbstractSlotVisitor): 445 (JSC::AbstractSlotVisitor::heap const): 446 (JSC::AbstractSlotVisitor::vm): 447 (JSC::AbstractSlotVisitor::vm const): 448 (JSC::AbstractSlotVisitor::addOpaqueRoot): 449 (JSC::AbstractSlotVisitor::containsOpaqueRoot const): 450 (JSC::AbstractSlotVisitor::append): 451 (JSC::AbstractSlotVisitor::appendHidden): 452 (JSC::AbstractSlotVisitor::appendHiddenUnbarriered): 453 (JSC::AbstractSlotVisitor::appendValues): 454 (JSC::AbstractSlotVisitor::appendValuesHidden): 455 (JSC::AbstractSlotVisitor::appendUnbarriered): 456 (JSC::AbstractSlotVisitor::parentCell const): 457 (JSC::AbstractSlotVisitor::reset): 458 * heap/HandleSet.cpp: 459 (JSC::HandleSet::visitStrongHandles): 460 * heap/HandleSet.h: 461 * heap/Heap.cpp: 462 (JSC::Heap::iterateExecutingAndCompilingCodeBlocks): 463 (JSC::Heap::iterateExecutingAndCompilingCodeBlocksWithoutHoldingLocks): 464 (JSC::Heap::runEndPhase): 465 (JSC::Heap::willStartCollection): 466 (JSC::scanExternalRememberedSet): 467 (JSC::serviceSamplingProfiler): 468 (JSC::Heap::addCoreConstraints): 469 (JSC::Heap::verifyGC): 470 (JSC::Heap::isAnalyzingHeap const): Deleted. 471 * heap/Heap.h: 472 (JSC::Heap::isMarkingForGCVerifier const): 473 (JSC::Heap::numOpaqueRoots const): Deleted. 474 * heap/HeapInlines.h: 475 (JSC::Heap::isMarked): 476 * heap/HeapProfiler.cpp: 477 (JSC::HeapProfiler::setActiveHeapAnalyzer): 478 * heap/IsoCellSet.h: 479 * heap/IsoCellSetInlines.h: 480 (JSC::IsoCellSet::forEachMarkedCellInParallel): 481 * heap/JITStubRoutineSet.cpp: 482 (JSC::JITStubRoutineSet::traceMarkedStubRoutines): 483 * heap/JITStubRoutineSet.h: 484 (JSC::JITStubRoutineSet::traceMarkedStubRoutines): 485 * heap/MarkStackMergingConstraint.cpp: 486 (JSC::MarkStackMergingConstraint::prepareToExecuteImpl): 487 (JSC::MarkStackMergingConstraint::executeImplImpl): 488 (JSC::MarkStackMergingConstraint::executeImpl): 489 * heap/MarkStackMergingConstraint.h: 490 * heap/MarkedBlock.h: 491 (JSC::MarkedBlock::Handle::atomAt const): 492 (JSC::MarkedBlock::setVerifierMemo): 493 (JSC::MarkedBlock::verifierMemo const): 494 * heap/MarkedSpace.cpp: 495 (JSC::MarkedSpace::visitWeakSets): 496 * heap/MarkedSpace.h: 497 * heap/MarkingConstraint.cpp: 498 (JSC::MarkingConstraint::execute): 499 (JSC::MarkingConstraint::executeSynchronously): 500 (JSC::MarkingConstraint::prepareToExecute): 501 (JSC::MarkingConstraint::doParallelWork): 502 (JSC::MarkingConstraint::prepareToExecuteImpl): 503 * heap/MarkingConstraint.h: 504 * heap/MarkingConstraintExecutorPair.h: Added. 505 (JSC::MarkingConstraintExecutorPair::MarkingConstraintExecutorPair): 506 (JSC::MarkingConstraintExecutorPair::execute): 507 * heap/MarkingConstraintSet.cpp: 508 (JSC::MarkingConstraintSet::add): 509 (JSC::MarkingConstraintSet::executeAllSynchronously): 510 (JSC::MarkingConstraintSet::executeAll): Deleted. 511 * heap/MarkingConstraintSet.h: 512 (JSC::MarkingConstraintSet::add): 513 * heap/MarkingConstraintSolver.cpp: 514 * heap/MarkingConstraintSolver.h: 515 * heap/SimpleMarkingConstraint.cpp: 516 (JSC::SimpleMarkingConstraint::SimpleMarkingConstraint): 517 (JSC::SimpleMarkingConstraint::executeImplImpl): 518 (JSC::SimpleMarkingConstraint::executeImpl): 519 * heap/SimpleMarkingConstraint.h: 520 * heap/SlotVisitor.cpp: 521 (JSC::SlotVisitor::SlotVisitor): 522 (JSC::SlotVisitor::reset): 523 (JSC::SlotVisitor::appendSlow): 524 (JSC::SlotVisitor::addParallelConstraintTask): 525 * heap/SlotVisitor.h: 526 (JSC::SlotVisitor::collectorMarkStack): Deleted. 527 (JSC::SlotVisitor::mutatorMarkStack): Deleted. 528 (JSC::SlotVisitor::collectorMarkStack const): Deleted. 529 (JSC::SlotVisitor::mutatorMarkStack const): Deleted. 530 (JSC::SlotVisitor::isEmpty): Deleted. 531 (JSC::SlotVisitor::isFirstVisit const): Deleted. 532 (JSC::SlotVisitor::bytesVisited const): Deleted. 533 (JSC::SlotVisitor::visitCount const): Deleted. 534 (JSC::SlotVisitor::addToVisitCount): Deleted. 535 (JSC::SlotVisitor::isAnalyzingHeap const): Deleted. 536 (JSC::SlotVisitor::heapAnalyzer const): Deleted. 537 (JSC::SlotVisitor::rootMarkReason const): Deleted. 538 (JSC::SlotVisitor::setRootMarkReason): Deleted. 539 (JSC::SlotVisitor::markingVersion const): Deleted. 540 (JSC::SlotVisitor::mutatorIsStopped const): Deleted. 541 (JSC::SlotVisitor::rightToRun): Deleted. 542 (JSC::SlotVisitor::didRace): Deleted. 543 (JSC::SlotVisitor::setIgnoreNewOpaqueRoots): Deleted. 544 (JSC::SlotVisitor::codeName const): Deleted. 545 (JSC::SetRootMarkReasonScope::SetRootMarkReasonScope): Deleted. 546 (JSC::SetRootMarkReasonScope::~SetRootMarkReasonScope): Deleted. 547 * heap/SlotVisitorInlines.h: 548 (JSC::SlotVisitor::isMarked const): 549 (JSC::SlotVisitor::addOpaqueRoot): Deleted. 550 (JSC::SlotVisitor::containsOpaqueRoot const): Deleted. 551 (JSC::SlotVisitor::heap const): Deleted. 552 (JSC::SlotVisitor::vm): Deleted. 553 (JSC::SlotVisitor::vm const): Deleted. 554 * heap/SlotVisitorMacros.h: Added. 555 * heap/Subspace.h: 556 * heap/SubspaceInlines.h: 557 (JSC::Subspace::forEachMarkedCellInParallel): 558 * heap/VerifierSlotVisitor.cpp: Added. 559 (JSC::MarkerData::MarkerData): 560 (JSC::VerifierSlotVisitor::MarkedBlockData::MarkedBlockData): 561 (JSC::VerifierSlotVisitor::MarkedBlockData::addMarkerData): 562 (JSC::VerifierSlotVisitor::MarkedBlockData::markerData const): 563 (JSC::VerifierSlotVisitor::PreciseAllocationData::PreciseAllocationData): 564 (JSC::VerifierSlotVisitor::PreciseAllocationData::markerData const): 565 (JSC::VerifierSlotVisitor::PreciseAllocationData::addMarkerData): 566 (JSC::VerifierSlotVisitor::VerifierSlotVisitor): 567 (JSC::VerifierSlotVisitor::~VerifierSlotVisitor): 568 (JSC::VerifierSlotVisitor::addParallelConstraintTask): 569 (JSC::VerifierSlotVisitor::executeConstraintTasks): 570 (JSC::VerifierSlotVisitor::append): 571 (JSC::VerifierSlotVisitor::appendToMarkStack): 572 (JSC::VerifierSlotVisitor::appendUnbarriered): 573 (JSC::VerifierSlotVisitor::appendHiddenUnbarriered): 574 (JSC::VerifierSlotVisitor::drain): 575 (JSC::VerifierSlotVisitor::dumpMarkerData): 576 (JSC::VerifierSlotVisitor::isFirstVisit const): 577 (JSC::VerifierSlotVisitor::isMarked const): 578 (JSC::VerifierSlotVisitor::markAuxiliary): 579 (JSC::VerifierSlotVisitor::mutatorIsStopped const): 580 (JSC::VerifierSlotVisitor::testAndSetMarked): 581 (JSC::VerifierSlotVisitor::setMarkedAndAppendToMarkStack): 582 (JSC::VerifierSlotVisitor::visitAsConstraint): 583 (JSC::VerifierSlotVisitor::visitChildren): 584 * heap/VerifierSlotVisitor.h: Added. 585 (JSC::VerifierSlotVisitor::MarkedBlockData::block const): 586 (JSC::VerifierSlotVisitor::MarkedBlockData::atoms const): 587 (JSC::VerifierSlotVisitor::MarkedBlockData::isMarked): 588 (JSC::VerifierSlotVisitor::MarkedBlockData::testAndSetMarked): 589 (JSC::VerifierSlotVisitor::PreciseAllocationData::allocation const): 590 (JSC::VerifierSlotVisitor::appendSlow): 591 * heap/VerifierSlotVisitorInlines.h: Added. 592 (JSC::VerifierSlotVisitor::forEachLiveCell): 593 (JSC::VerifierSlotVisitor::forEachLivePreciseAllocation): 594 (JSC::VerifierSlotVisitor::forEachLiveMarkedBlockCell): 595 * heap/VisitCounter.h: 596 (JSC::VisitCounter::VisitCounter): 597 (JSC::VisitCounter::visitor const): 598 * heap/WeakBlock.cpp: 599 (JSC::WeakBlock::specializedVisit): 600 (JSC::WeakBlock::visitImpl): 601 (JSC::WeakBlock::visit): 602 * heap/WeakBlock.h: 603 * heap/WeakHandleOwner.cpp: 604 (JSC::WeakHandleOwner::isReachableFromOpaqueRoots): 605 * heap/WeakHandleOwner.h: 606 * heap/WeakSet.cpp: 607 * heap/WeakSet.h: 608 (JSC::WeakSet::visit): 609 * interpreter/ShadowChicken.cpp: 610 (JSC::ShadowChicken::visitChildren): 611 * interpreter/ShadowChicken.h: 612 * jit/GCAwareJITStubRoutine.cpp: 613 (JSC::MarkingGCAwareJITStubRoutine::markRequiredObjectsInternalImpl): 614 (JSC::MarkingGCAwareJITStubRoutine::markRequiredObjectsInternal): 615 (JSC::GCAwareJITStubRoutine::markRequiredObjectsInternal): Deleted. 616 * jit/GCAwareJITStubRoutine.h: 617 (JSC::GCAwareJITStubRoutine::markRequiredObjects): 618 (JSC::GCAwareJITStubRoutine::markRequiredObjectsInternal): 619 * jit/JITWorklist.cpp: 620 * jit/PolymorphicCallStubRoutine.cpp: 621 (JSC::PolymorphicCallStubRoutine::markRequiredObjectsInternalImpl): 622 (JSC::PolymorphicCallStubRoutine::markRequiredObjectsInternal): 623 * jit/PolymorphicCallStubRoutine.h: 624 * runtime/AbstractModuleRecord.cpp: 625 (JSC::AbstractModuleRecord::visitChildrenImpl): 626 (JSC::AbstractModuleRecord::visitChildren): Deleted. 627 * runtime/AbstractModuleRecord.h: 628 * runtime/ArgList.cpp: 629 (JSC::MarkedArgumentBuffer::markLists): 630 * runtime/ArgList.h: 631 * runtime/CacheableIdentifier.h: 632 * runtime/CacheableIdentifierInlines.h: 633 (JSC::CacheableIdentifier::visitAggregate const): 634 * runtime/ClassInfo.h: 635 (JSC::MethodTable::visitChildren const): 636 (JSC::MethodTable::visitOutputConstraints const): 637 * runtime/ClonedArguments.cpp: 638 (JSC::ClonedArguments::visitChildrenImpl): 639 (JSC::ClonedArguments::visitChildren): Deleted. 640 * runtime/ClonedArguments.h: 641 * runtime/DirectArguments.cpp: 642 (JSC::DirectArguments::visitChildrenImpl): 643 (JSC::DirectArguments::visitChildren): Deleted. 644 * runtime/DirectArguments.h: 645 * runtime/EvalExecutable.cpp: 646 (JSC::EvalExecutable::visitChildrenImpl): 647 (JSC::EvalExecutable::visitChildren): Deleted. 648 * runtime/EvalExecutable.h: 649 * runtime/Exception.cpp: 650 (JSC::Exception::visitChildrenImpl): 651 (JSC::Exception::visitChildren): Deleted. 652 * runtime/Exception.h: 653 * runtime/FunctionExecutable.cpp: 654 (JSC::FunctionExecutable::visitChildrenImpl): 655 (JSC::FunctionExecutable::visitChildren): Deleted. 656 * runtime/FunctionExecutable.h: 657 * runtime/FunctionRareData.cpp: 658 (JSC::FunctionRareData::visitChildrenImpl): 659 (JSC::FunctionRareData::visitChildren): Deleted. 660 * runtime/FunctionRareData.h: 661 * runtime/GenericArguments.h: 662 * runtime/GenericArgumentsInlines.h: 663 (JSC::GenericArguments<Type>::visitChildrenImpl): 664 (JSC::GenericArguments<Type>::visitChildren): Deleted. 665 * runtime/GetterSetter.cpp: 666 (JSC::GetterSetter::visitChildrenImpl): 667 (JSC::GetterSetter::visitChildren): Deleted. 668 * runtime/GetterSetter.h: 669 * runtime/HashMapImpl.cpp: 670 (JSC::HashMapBucket<Data>::visitChildrenImpl): 671 (JSC::HashMapImpl<HashMapBucket>::visitChildrenImpl): 672 (JSC::HashMapBucket<Data>::visitChildren): Deleted. 673 (JSC::HashMapImpl<HashMapBucket>::visitChildren): Deleted. 674 * runtime/HashMapImpl.h: 675 * runtime/InternalFunction.cpp: 676 (JSC::InternalFunction::visitChildrenImpl): 677 (JSC::InternalFunction::visitChildren): Deleted. 678 * runtime/InternalFunction.h: 679 * runtime/IntlCollator.cpp: 680 (JSC::IntlCollator::visitChildrenImpl): 681 (JSC::IntlCollator::visitChildren): Deleted. 682 * runtime/IntlCollator.h: 683 * runtime/IntlDateTimeFormat.cpp: 684 (JSC::IntlDateTimeFormat::visitChildrenImpl): 685 (JSC::IntlDateTimeFormat::visitChildren): Deleted. 686 * runtime/IntlDateTimeFormat.h: 687 * runtime/IntlLocale.cpp: 688 (JSC::IntlLocale::visitChildrenImpl): 689 (JSC::IntlLocale::visitChildren): Deleted. 690 * runtime/IntlLocale.h: 691 * runtime/IntlNumberFormat.cpp: 692 (JSC::IntlNumberFormat::visitChildrenImpl): 693 (JSC::IntlNumberFormat::visitChildren): Deleted. 694 * runtime/IntlNumberFormat.h: 695 * runtime/IntlPluralRules.cpp: 696 (JSC::IntlPluralRules::visitChildrenImpl): 697 (JSC::IntlPluralRules::visitChildren): Deleted. 698 * runtime/IntlPluralRules.h: 699 * runtime/IntlRelativeTimeFormat.cpp: 700 (JSC::IntlRelativeTimeFormat::visitChildrenImpl): 701 (JSC::IntlRelativeTimeFormat::visitChildren): Deleted. 702 * runtime/IntlRelativeTimeFormat.h: 703 * runtime/IntlSegmentIterator.cpp: 704 (JSC::IntlSegmentIterator::visitChildrenImpl): 705 (JSC::IntlSegmentIterator::visitChildren): Deleted. 706 * runtime/IntlSegmentIterator.h: 707 * runtime/IntlSegments.cpp: 708 (JSC::IntlSegments::visitChildrenImpl): 709 (JSC::IntlSegments::visitChildren): Deleted. 710 * runtime/IntlSegments.h: 711 * runtime/JSArrayBufferView.cpp: 712 (JSC::JSArrayBufferView::visitChildrenImpl): 713 (JSC::JSArrayBufferView::visitChildren): Deleted. 714 * runtime/JSArrayBufferView.h: 715 * runtime/JSArrayIterator.cpp: 716 (JSC::JSArrayIterator::visitChildrenImpl): 717 (JSC::JSArrayIterator::visitChildren): Deleted. 718 * runtime/JSArrayIterator.h: 719 * runtime/JSAsyncGenerator.cpp: 720 (JSC::JSAsyncGenerator::visitChildrenImpl): 721 (JSC::JSAsyncGenerator::visitChildren): Deleted. 722 * runtime/JSAsyncGenerator.h: 723 * runtime/JSBigInt.cpp: 724 (JSC::JSBigInt::visitChildrenImpl): 725 (JSC::JSBigInt::visitChildren): Deleted. 726 * runtime/JSBigInt.h: 727 * runtime/JSBoundFunction.cpp: 728 (JSC::JSBoundFunction::visitChildrenImpl): 729 (JSC::JSBoundFunction::visitChildren): Deleted. 730 * runtime/JSBoundFunction.h: 731 * runtime/JSCallee.cpp: 732 (JSC::JSCallee::visitChildrenImpl): 733 (JSC::JSCallee::visitChildren): Deleted. 734 * runtime/JSCallee.h: 735 * runtime/JSCell.h: 736 * runtime/JSCellInlines.h: 737 (JSC::JSCell::visitChildrenImpl): 738 (JSC::JSCell::visitOutputConstraintsImpl): 739 (JSC::JSCell::visitChildren): Deleted. 740 (JSC::JSCell::visitOutputConstraints): Deleted. 741 * runtime/JSFinalizationRegistry.cpp: 742 (JSC::JSFinalizationRegistry::visitChildrenImpl): 743 (JSC::JSFinalizationRegistry::visitChildren): Deleted. 744 * runtime/JSFinalizationRegistry.h: 745 * runtime/JSFunction.cpp: 746 (JSC::JSFunction::visitChildrenImpl): 747 (JSC::JSFunction::visitChildren): Deleted. 748 * runtime/JSFunction.h: 749 * runtime/JSGenerator.cpp: 750 (JSC::JSGenerator::visitChildrenImpl): 751 (JSC::JSGenerator::visitChildren): Deleted. 752 * runtime/JSGenerator.h: 753 * runtime/JSGenericTypedArrayView.h: 754 * runtime/JSGenericTypedArrayViewInlines.h: 755 (JSC::JSGenericTypedArrayView<Adaptor>::visitChildrenImpl): 756 (JSC::JSGenericTypedArrayView<Adaptor>::visitChildren): Deleted. 757 * runtime/JSGlobalObject.cpp: 758 (JSC::JSGlobalObject::visitChildrenImpl): 759 (JSC::JSGlobalObject::visitChildren): Deleted. 760 * runtime/JSGlobalObject.h: 761 * runtime/JSImmutableButterfly.cpp: 762 (JSC::JSImmutableButterfly::visitChildrenImpl): 763 (JSC::JSImmutableButterfly::visitChildren): Deleted. 764 * runtime/JSImmutableButterfly.h: 765 * runtime/JSInternalFieldObjectImpl.h: 766 * runtime/JSInternalFieldObjectImplInlines.h: 767 (JSC::JSInternalFieldObjectImpl<passedNumberOfInternalFields>::visitChildrenImpl): 768 (JSC::JSInternalFieldObjectImpl<passedNumberOfInternalFields>::visitChildren): Deleted. 769 * runtime/JSLexicalEnvironment.cpp: 770 (JSC::JSLexicalEnvironment::visitChildrenImpl): 771 (JSC::JSLexicalEnvironment::visitChildren): Deleted. 772 * runtime/JSLexicalEnvironment.h: 773 * runtime/JSMapIterator.cpp: 774 (JSC::JSMapIterator::visitChildrenImpl): 775 (JSC::JSMapIterator::visitChildren): Deleted. 776 * runtime/JSMapIterator.h: 777 * runtime/JSModuleEnvironment.cpp: 778 (JSC::JSModuleEnvironment::visitChildrenImpl): 779 (JSC::JSModuleEnvironment::visitChildren): Deleted. 780 * runtime/JSModuleEnvironment.h: 781 * runtime/JSModuleNamespaceObject.cpp: 782 (JSC::JSModuleNamespaceObject::visitChildrenImpl): 783 (JSC::JSModuleNamespaceObject::visitChildren): Deleted. 784 * runtime/JSModuleNamespaceObject.h: 785 * runtime/JSModuleRecord.cpp: 786 (JSC::JSModuleRecord::visitChildrenImpl): 787 (JSC::JSModuleRecord::visitChildren): Deleted. 788 * runtime/JSModuleRecord.h: 789 * runtime/JSNativeStdFunction.cpp: 790 (JSC::JSNativeStdFunction::visitChildrenImpl): 791 (JSC::JSNativeStdFunction::visitChildren): Deleted. 792 * runtime/JSNativeStdFunction.h: 793 * runtime/JSObject.cpp: 794 (JSC::JSObject::markAuxiliaryAndVisitOutOfLineProperties): 795 (JSC::JSObject::visitButterfly): 796 (JSC::JSObject::visitButterflyImpl): 797 (JSC::JSObject::visitChildrenImpl): 798 (JSC::JSFinalObject::visitChildrenImpl): 799 (JSC::JSObject::visitChildren): Deleted. 800 (JSC::JSFinalObject::visitChildren): Deleted. 801 * runtime/JSObject.h: 802 * runtime/JSPromise.cpp: 803 (JSC::JSPromise::visitChildrenImpl): 804 (JSC::JSPromise::visitChildren): Deleted. 805 * runtime/JSPromise.h: 806 * runtime/JSPropertyNameEnumerator.cpp: 807 (JSC::JSPropertyNameEnumerator::visitChildrenImpl): 808 (JSC::JSPropertyNameEnumerator::visitChildren): Deleted. 809 * runtime/JSPropertyNameEnumerator.h: 810 * runtime/JSProxy.cpp: 811 (JSC::JSProxy::visitChildrenImpl): 812 (JSC::JSProxy::visitChildren): Deleted. 813 * runtime/JSProxy.h: 814 * runtime/JSScope.cpp: 815 (JSC::JSScope::visitChildrenImpl): 816 (JSC::JSScope::visitChildren): Deleted. 817 * runtime/JSScope.h: 818 * runtime/JSSegmentedVariableObject.cpp: 819 (JSC::JSSegmentedVariableObject::visitChildrenImpl): 820 (JSC::JSSegmentedVariableObject::visitChildren): Deleted. 821 * runtime/JSSegmentedVariableObject.h: 822 * runtime/JSSetIterator.cpp: 823 (JSC::JSSetIterator::visitChildrenImpl): 824 (JSC::JSSetIterator::visitChildren): Deleted. 825 * runtime/JSSetIterator.h: 826 * runtime/JSString.cpp: 827 (JSC::JSString::visitChildrenImpl): 828 (JSC::JSString::visitChildren): Deleted. 829 * runtime/JSString.h: 830 * runtime/JSStringIterator.cpp: 831 (JSC::JSStringIterator::visitChildrenImpl): 832 (JSC::JSStringIterator::visitChildren): Deleted. 833 * runtime/JSStringIterator.h: 834 * runtime/JSSymbolTableObject.cpp: 835 (JSC::JSSymbolTableObject::visitChildrenImpl): 836 (JSC::JSSymbolTableObject::visitChildren): Deleted. 837 * runtime/JSSymbolTableObject.h: 838 * runtime/JSWeakObjectRef.cpp: 839 (JSC::JSWeakObjectRef::visitChildrenImpl): 840 (JSC::JSWeakObjectRef::visitChildren): Deleted. 841 * runtime/JSWeakObjectRef.h: 842 * runtime/JSWithScope.cpp: 843 (JSC::JSWithScope::visitChildrenImpl): 844 (JSC::JSWithScope::visitChildren): Deleted. 845 * runtime/JSWithScope.h: 846 * runtime/JSWrapperObject.cpp: 847 (JSC::JSWrapperObject::visitChildrenImpl): 848 (JSC::JSWrapperObject::visitChildren): Deleted. 849 * runtime/JSWrapperObject.h: 850 * runtime/LazyClassStructure.cpp: 851 (JSC::LazyClassStructure::visit): 852 * runtime/LazyClassStructure.h: 853 * runtime/LazyProperty.h: 854 * runtime/LazyPropertyInlines.h: 855 (JSC::ElementType>::visit): 856 * runtime/ModuleProgramExecutable.cpp: 857 (JSC::ModuleProgramExecutable::visitChildrenImpl): 858 (JSC::ModuleProgramExecutable::visitChildren): Deleted. 859 * runtime/ModuleProgramExecutable.h: 860 * runtime/Options.cpp: 861 (JSC::Options::recomputeDependentOptions): 862 * runtime/OptionsList.h: 863 * runtime/ProgramExecutable.cpp: 864 (JSC::ProgramExecutable::visitChildrenImpl): 865 (JSC::ProgramExecutable::visitChildren): Deleted. 866 * runtime/ProgramExecutable.h: 867 * runtime/PropertyMapHashTable.h: 868 * runtime/PropertyTable.cpp: 869 (JSC::PropertyTable::visitChildrenImpl): 870 (JSC::PropertyTable::visitChildren): Deleted. 871 * runtime/ProxyObject.cpp: 872 (JSC::ProxyObject::visitChildrenImpl): 873 (JSC::ProxyObject::visitChildren): Deleted. 874 * runtime/ProxyObject.h: 875 * runtime/ProxyRevoke.cpp: 876 (JSC::ProxyRevoke::visitChildrenImpl): 877 (JSC::ProxyRevoke::visitChildren): Deleted. 878 * runtime/ProxyRevoke.h: 879 * runtime/RegExpCachedResult.cpp: 880 (JSC::RegExpCachedResult::visitAggregateImpl): 881 (JSC::RegExpCachedResult::visitAggregate): Deleted. 882 * runtime/RegExpCachedResult.h: 883 * runtime/RegExpGlobalData.cpp: 884 (JSC::RegExpGlobalData::visitAggregateImpl): 885 (JSC::RegExpGlobalData::visitAggregate): Deleted. 886 * runtime/RegExpGlobalData.h: 887 * runtime/RegExpObject.cpp: 888 (JSC::RegExpObject::visitChildrenImpl): 889 (JSC::RegExpObject::visitChildren): Deleted. 890 * runtime/RegExpObject.h: 891 * runtime/SamplingProfiler.cpp: 892 (JSC::SamplingProfiler::visit): 893 * runtime/SamplingProfiler.h: 894 * runtime/ScopedArguments.cpp: 895 (JSC::ScopedArguments::visitChildrenImpl): 896 (JSC::ScopedArguments::visitChildren): Deleted. 897 * runtime/ScopedArguments.h: 898 * runtime/SimpleTypedArrayController.cpp: 899 (JSC::SimpleTypedArrayController::JSArrayBufferOwner::isReachableFromOpaqueRoots): 900 * runtime/SimpleTypedArrayController.h: 901 * runtime/SmallStrings.cpp: 902 (JSC::SmallStrings::visitStrongReferences): 903 * runtime/SmallStrings.h: 904 * runtime/SparseArrayValueMap.cpp: 905 (JSC::SparseArrayValueMap::visitChildrenImpl): 906 (JSC::SparseArrayValueMap::visitChildren): Deleted. 907 * runtime/SparseArrayValueMap.h: 908 * runtime/StackFrame.cpp: 909 (JSC::StackFrame::visitChildren): Deleted. 910 * runtime/StackFrame.h: 911 (JSC::StackFrame::visitChildren): 912 * runtime/Structure.cpp: 913 (JSC::Structure::visitChildrenImpl): 914 (JSC::Structure::isCheapDuringGC): 915 (JSC::Structure::markIfCheap): 916 (JSC::Structure::visitChildren): Deleted. 917 * runtime/Structure.h: 918 * runtime/StructureChain.cpp: 919 (JSC::StructureChain::visitChildrenImpl): 920 (JSC::StructureChain::visitChildren): Deleted. 921 * runtime/StructureChain.h: 922 * runtime/StructureRareData.cpp: 923 (JSC::StructureRareData::visitChildrenImpl): 924 (JSC::StructureRareData::visitChildren): Deleted. 925 * runtime/StructureRareData.h: 926 * runtime/SymbolTable.cpp: 927 (JSC::SymbolTable::visitChildrenImpl): 928 (JSC::SymbolTable::visitChildren): Deleted. 929 * runtime/SymbolTable.h: 930 * runtime/TypeProfilerLog.cpp: 931 (JSC::TypeProfilerLog::visit): 932 * runtime/TypeProfilerLog.h: 933 * runtime/VM.h: 934 (JSC::VM::isAnalyzingHeap const): 935 (JSC::VM::activeHeapAnalyzer const): 936 (JSC::VM::setActiveHeapAnalyzer): 937 * runtime/WeakMapImpl.cpp: 938 (JSC::WeakMapImpl<WeakMapBucket>::visitChildrenImpl): 939 (JSC::WeakMapImpl<WeakMapBucket<WeakMapBucketDataKey>>::visitOutputConstraints): 940 (JSC::WeakMapImpl<BucketType>::visitOutputConstraints): 941 (JSC::WeakMapImpl<WeakMapBucket>::visitChildren): Deleted. 942 (JSC::WeakMapImpl<WeakMapBucket<WeakMapBucketDataKeyValue>>::visitOutputConstraints): Deleted. 943 * runtime/WeakMapImpl.h: 944 (JSC::WeakMapBucket::visitAggregate): 945 * tools/JSDollarVM.cpp: 946 (JSC::JSDollarVM::visitChildrenImpl): 947 (JSC::JSDollarVM::visitChildren): Deleted. 948 * tools/JSDollarVM.h: 949 * wasm/WasmGlobal.cpp: 950 (JSC::Wasm::Global::visitAggregateImpl): 951 (JSC::Wasm::Global::visitAggregate): Deleted. 952 * wasm/WasmGlobal.h: 953 * wasm/WasmTable.cpp: 954 (JSC::Wasm::Table::visitAggregateImpl): 955 (JSC::Wasm::Table::visitAggregate): Deleted. 956 * wasm/WasmTable.h: 957 * wasm/js/JSToWasmICCallee.cpp: 958 (JSC::JSToWasmICCallee::visitChildrenImpl): 959 (JSC::JSToWasmICCallee::visitChildren): Deleted. 960 * wasm/js/JSToWasmICCallee.h: 961 * wasm/js/JSWebAssemblyCodeBlock.cpp: 962 (JSC::JSWebAssemblyCodeBlock::visitChildrenImpl): 963 (JSC::JSWebAssemblyCodeBlock::visitChildren): Deleted. 964 * wasm/js/JSWebAssemblyCodeBlock.h: 965 * wasm/js/JSWebAssemblyGlobal.cpp: 966 (JSC::JSWebAssemblyGlobal::visitChildrenImpl): 967 (JSC::JSWebAssemblyGlobal::visitChildren): Deleted. 968 * wasm/js/JSWebAssemblyGlobal.h: 969 * wasm/js/JSWebAssemblyInstance.cpp: 970 (JSC::JSWebAssemblyInstance::visitChildrenImpl): 971 (JSC::JSWebAssemblyInstance::visitChildren): Deleted. 972 * wasm/js/JSWebAssemblyInstance.h: 973 * wasm/js/JSWebAssemblyMemory.cpp: 974 (JSC::JSWebAssemblyMemory::visitChildrenImpl): 975 (JSC::JSWebAssemblyMemory::visitChildren): Deleted. 976 * wasm/js/JSWebAssemblyMemory.h: 977 * wasm/js/JSWebAssemblyModule.cpp: 978 (JSC::JSWebAssemblyModule::visitChildrenImpl): 979 (JSC::JSWebAssemblyModule::visitChildren): Deleted. 980 * wasm/js/JSWebAssemblyModule.h: 981 * wasm/js/JSWebAssemblyTable.cpp: 982 (JSC::JSWebAssemblyTable::visitChildrenImpl): 983 (JSC::JSWebAssemblyTable::visitChildren): Deleted. 984 * wasm/js/JSWebAssemblyTable.h: 985 * wasm/js/WebAssemblyFunction.cpp: 986 (JSC::WebAssemblyFunction::visitChildrenImpl): 987 (JSC::WebAssemblyFunction::visitChildren): Deleted. 988 * wasm/js/WebAssemblyFunction.h: 989 * wasm/js/WebAssemblyFunctionBase.cpp: 990 (JSC::WebAssemblyFunctionBase::visitChildrenImpl): 991 (JSC::WebAssemblyFunctionBase::visitChildren): Deleted. 992 * wasm/js/WebAssemblyFunctionBase.h: 993 * wasm/js/WebAssemblyModuleRecord.cpp: 994 (JSC::WebAssemblyModuleRecord::visitChildrenImpl): 995 (JSC::WebAssemblyModuleRecord::visitChildren): Deleted. 996 * wasm/js/WebAssemblyModuleRecord.h: 997 * wasm/js/WebAssemblyWrapperFunction.cpp: 998 (JSC::WebAssemblyWrapperFunction::visitChildrenImpl): 999 (JSC::WebAssemblyWrapperFunction::visitChildren): Deleted. 1000 * wasm/js/WebAssemblyWrapperFunction.h: 1001 1 1002 2021-02-19 Yusuke Suzuki <ysuzuki@apple.com> 2 1003 -
trunk/Source/JavaScriptCore/JavaScriptCore.xcodeproj/project.pbxproj
r272922 r273138 1159 1159 6A38CFAA1E32B5AB0060206F /* AsyncStackTrace.h in Headers */ = {isa = PBXBuildFile; fileRef = 6A38CFA81E32B58B0060206F /* AsyncStackTrace.h */; }; 1160 1160 6AD2CB4D19B9140100065719 /* DebuggerEvalEnabler.h in Headers */ = {isa = PBXBuildFile; fileRef = 6AD2CB4C19B9140100065719 /* DebuggerEvalEnabler.h */; settings = {ATTRIBUTES = (Private, ); }; }; 1161 6BCCEC0425D1FA27000F391D /* VerifierSlotVisitorInlines.h in Headers */ = {isa = PBXBuildFile; fileRef = 6BCCEC0325D1FA27000F391D /* VerifierSlotVisitorInlines.h */; }; 1161 1162 70113D4C1A8DB093003848C4 /* IteratorOperations.h in Headers */ = {isa = PBXBuildFile; fileRef = 70113D4A1A8DB093003848C4 /* IteratorOperations.h */; settings = {ATTRIBUTES = (Private, ); }; }; 1162 1163 7013CA8C1B491A9400CAE613 /* JSMicrotask.h in Headers */ = {isa = PBXBuildFile; fileRef = 7013CA8A1B491A9400CAE613 /* JSMicrotask.h */; settings = {ATTRIBUTES = (Private, ); }; }; … … 1921 1922 E49DC16C12EF294E00184A1F /* SourceProviderCache.h in Headers */ = {isa = PBXBuildFile; fileRef = E49DC15112EF272200184A1F /* SourceProviderCache.h */; settings = {ATTRIBUTES = (Private, ); }; }; 1922 1923 E49DC16D12EF295300184A1F /* SourceProviderCacheItem.h in Headers */ = {isa = PBXBuildFile; fileRef = E49DC14912EF261A00184A1F /* SourceProviderCacheItem.h */; settings = {ATTRIBUTES = (Private, ); }; }; 1924 FE041553252EC0730091EB5D /* SlotVisitorMacros.h in Headers */ = {isa = PBXBuildFile; fileRef = FE041552252EC0730091EB5D /* SlotVisitorMacros.h */; settings = {ATTRIBUTES = (Private, ); }; }; 1923 1925 FE05FAFD1FE4CEDA00093230 /* DeprecatedInspectorValues.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 992D6A111FBD491D000245F4 /* DeprecatedInspectorValues.cpp */; }; 1924 1926 FE086BCA2123DEFB003F2929 /* EntryFrame.h in Headers */ = {isa = PBXBuildFile; fileRef = FE086BC92123DEFA003F2929 /* EntryFrame.h */; settings = {ATTRIBUTES = (Private, ); }; }; … … 1943 1945 FE1E2C402240DD6200F6B729 /* ARM64EAssembler.h in Headers */ = {isa = PBXBuildFile; fileRef = FE1E2C3D2240D2F600F6B729 /* ARM64EAssembler.h */; settings = {ATTRIBUTES = (Private, ); }; }; 1944 1946 FE20CE9E15F04A9500DF3430 /* LLIntCLoop.h in Headers */ = {isa = PBXBuildFile; fileRef = FE20CE9C15F04A9500DF3430 /* LLIntCLoop.h */; settings = {ATTRIBUTES = (Private, ); }; }; 1947 FE287D02252FB2E800D723F9 /* VerifierSlotVisitor.h in Headers */ = {isa = PBXBuildFile; fileRef = FE287D01252FB2E800D723F9 /* VerifierSlotVisitor.h */; settings = {ATTRIBUTES = (Private, ); }; }; 1945 1948 FE2A87601F02381600EB31B2 /* MinimumReservedZoneSize.h in Headers */ = {isa = PBXBuildFile; fileRef = FE2A875F1F02381600EB31B2 /* MinimumReservedZoneSize.h */; }; 1946 1949 FE3022D31E3D73A500BAC493 /* SigillCrashAnalyzer.h in Headers */ = {isa = PBXBuildFile; fileRef = FE3022D11E3D739600BAC493 /* SigillCrashAnalyzer.h */; settings = {ATTRIBUTES = (Private, ); }; }; 1947 1950 FE3022D71E42857300BAC493 /* VMInspector.h in Headers */ = {isa = PBXBuildFile; fileRef = FE3022D51E42856700BAC493 /* VMInspector.h */; }; 1951 FE336B5325DB497D0098F034 /* MarkingConstraintExecutorPair.h in Headers */ = {isa = PBXBuildFile; fileRef = FE336B5225DB497D0098F034 /* MarkingConstraintExecutorPair.h */; }; 1948 1952 FE3422121D6B81C30032BE88 /* ThrowScope.h in Headers */ = {isa = PBXBuildFile; fileRef = FE3422111D6B818C0032BE88 /* ThrowScope.h */; settings = {ATTRIBUTES = (Private, ); }; }; 1949 1953 FE34EE2124398AAE00AA2E7C /* EnsureStillAliveHere.h in Headers */ = {isa = PBXBuildFile; fileRef = FE34EE2024398A9A00AA2E7C /* EnsureStillAliveHere.h */; settings = {ATTRIBUTES = (Private, ); }; }; … … 1981 1985 FE8DE54B23AC1DAD005C9142 /* CacheableIdentifier.h in Headers */ = {isa = PBXBuildFile; fileRef = FE8DE54A23AC1DAD005C9142 /* CacheableIdentifier.h */; }; 1982 1986 FE8DE54D23AC1E86005C9142 /* CacheableIdentifierInlines.h in Headers */ = {isa = PBXBuildFile; fileRef = FE8DE54C23AC1E86005C9142 /* CacheableIdentifierInlines.h */; }; 1987 FE912B4F2531193300FABDDF /* AbstractSlotVisitor.h in Headers */ = {isa = PBXBuildFile; fileRef = FE912B4E2531193300FABDDF /* AbstractSlotVisitor.h */; settings = {ATTRIBUTES = (Private, ); }; }; 1988 FE912B5125311AD100FABDDF /* AbstractSlotVisitorInlines.h in Headers */ = {isa = PBXBuildFile; fileRef = FE912B5025311AD100FABDDF /* AbstractSlotVisitorInlines.h */; settings = {ATTRIBUTES = (Private, ); }; }; 1983 1989 FE99B2491C24C3D300C82159 /* JITNegGenerator.h in Headers */ = {isa = PBXBuildFile; fileRef = FE99B2481C24B6D300C82159 /* JITNegGenerator.h */; }; 1984 1990 FEA08620182B7A0400F6D851 /* Breakpoint.h in Headers */ = {isa = PBXBuildFile; fileRef = FEA0861E182B7A0400F6D851 /* Breakpoint.h */; settings = {ATTRIBUTES = (Private, ); }; }; … … 3992 3998 6AD2CB4C19B9140100065719 /* DebuggerEvalEnabler.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DebuggerEvalEnabler.h; sourceTree = "<group>"; }; 3993 3999 6BA93C9590484C5BAD9316EA /* JSScriptFetcher.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JSScriptFetcher.h; sourceTree = "<group>"; }; 4000 6BCCEC0325D1FA27000F391D /* VerifierSlotVisitorInlines.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = VerifierSlotVisitorInlines.h; sourceTree = "<group>"; }; 3994 4001 70113D491A8DB093003848C4 /* IteratorOperations.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = IteratorOperations.cpp; sourceTree = "<group>"; }; 3995 4002 70113D4A1A8DB093003848C4 /* IteratorOperations.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = IteratorOperations.h; sourceTree = "<group>"; }; … … 5228 5235 F73926918DC64330AFCDF0D7 /* JSSourceCode.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JSSourceCode.cpp; sourceTree = "<group>"; }; 5229 5236 FE00262223F3AF33003A358F /* WebAssembly.asm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.asm.asm; name = WebAssembly.asm; path = llint/WebAssembly.asm; sourceTree = "<group>"; }; 5237 FE041552252EC0730091EB5D /* SlotVisitorMacros.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SlotVisitorMacros.h; sourceTree = "<group>"; }; 5230 5238 FE086BC92123DEFA003F2929 /* EntryFrame.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EntryFrame.h; sourceTree = "<group>"; }; 5231 5239 FE0D4A041AB8DD0A002F54BF /* ExecutionTimeLimitTest.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = ExecutionTimeLimitTest.cpp; path = API/tests/ExecutionTimeLimitTest.cpp; sourceTree = "<group>"; }; … … 5262 5270 FE20CE9B15F04A9500DF3430 /* LLIntCLoop.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = LLIntCLoop.cpp; path = llint/LLIntCLoop.cpp; sourceTree = "<group>"; }; 5263 5271 FE20CE9C15F04A9500DF3430 /* LLIntCLoop.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = LLIntCLoop.h; path = llint/LLIntCLoop.h; sourceTree = "<group>"; }; 5272 FE287D01252FB2E800D723F9 /* VerifierSlotVisitor.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = VerifierSlotVisitor.h; sourceTree = "<group>"; }; 5264 5273 FE2A875F1F02381600EB31B2 /* MinimumReservedZoneSize.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MinimumReservedZoneSize.h; sourceTree = "<group>"; }; 5274 FE2BD66E25C0DC8200999D3B /* VerifierSlotVisitor.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = VerifierSlotVisitor.cpp; sourceTree = "<group>"; }; 5265 5275 FE2E6A7A1D6EA5FE0060F896 /* ThrowScope.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = ThrowScope.cpp; sourceTree = "<group>"; }; 5266 5276 FE3022D01E3D739600BAC493 /* SigillCrashAnalyzer.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = SigillCrashAnalyzer.cpp; sourceTree = "<group>"; }; … … 5268 5278 FE3022D41E42856700BAC493 /* VMInspector.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = VMInspector.cpp; sourceTree = "<group>"; }; 5269 5279 FE3022D51E42856700BAC493 /* VMInspector.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = VMInspector.h; sourceTree = "<group>"; }; 5280 FE336B5225DB497D0098F034 /* MarkingConstraintExecutorPair.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MarkingConstraintExecutorPair.h; sourceTree = "<group>"; }; 5270 5281 FE3422111D6B818C0032BE88 /* ThrowScope.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ThrowScope.h; sourceTree = "<group>"; }; 5271 5282 FE34EE2024398A9A00AA2E7C /* EnsureStillAliveHere.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = EnsureStillAliveHere.h; sourceTree = "<group>"; }; … … 5336 5347 FE8DE54E23AC3A8E005C9142 /* CacheableIdentifier.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = CacheableIdentifier.cpp; sourceTree = "<group>"; }; 5337 5348 FE90BB3A1B7CF64E006B3F03 /* VMInlines.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = VMInlines.h; sourceTree = "<group>"; }; 5349 FE912B4E2531193300FABDDF /* AbstractSlotVisitor.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AbstractSlotVisitor.h; sourceTree = "<group>"; }; 5350 FE912B5025311AD100FABDDF /* AbstractSlotVisitorInlines.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AbstractSlotVisitorInlines.h; sourceTree = "<group>"; }; 5338 5351 FE98B5B61BB9AE110073E7A6 /* JITSubGenerator.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = JITSubGenerator.h; sourceTree = "<group>"; }; 5339 5352 FE99B2471C24B6D300C82159 /* JITNegGenerator.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = JITNegGenerator.cpp; sourceTree = "<group>"; }; … … 6283 6296 isa = PBXGroup; 6284 6297 children = ( 6298 FE912B4E2531193300FABDDF /* AbstractSlotVisitor.h */, 6299 FE912B5025311AD100FABDDF /* AbstractSlotVisitorInlines.h */, 6285 6300 0FEC3C501F33A41600F59B6C /* AlignedMemoryAllocator.cpp */, 6286 6301 0FEC3C511F33A41600F59B6C /* AlignedMemoryAllocator.h */, … … 6414 6429 0F660E331E0517B70031462C /* MarkingConstraint.cpp */, 6415 6430 0F660E341E0517B70031462C /* MarkingConstraint.h */, 6431 FE336B5225DB497D0098F034 /* MarkingConstraintExecutorPair.h */, 6416 6432 0F660E351E0517B70031462C /* MarkingConstraintSet.cpp */, 6417 6433 0F660E361E0517B80031462C /* MarkingConstraintSet.h */, … … 6440 6456 14BA78F013AAB88F005B7C2C /* SlotVisitor.h */, 6441 6457 0FCB408515C0A3C30048932B /* SlotVisitorInlines.h */, 6458 FE041552252EC0730091EB5D /* SlotVisitorMacros.h */, 6442 6459 0FDE87FA1DFE6E500064C390 /* SpaceTimeMutatorScheduler.cpp */, 6443 6460 0FDE87FB1DFE6E500064C390 /* SpaceTimeMutatorScheduler.h */, … … 6457 6474 0F1FB38B1E173A6200A9BE50 /* SynchronousStopTheWorldMutatorScheduler.h */, 6458 6475 141448CC13A1783700F5BA1A /* TinyBloomFilter.h */, 6476 FE2BD66E25C0DC8200999D3B /* VerifierSlotVisitor.cpp */, 6477 FE287D01252FB2E800D723F9 /* VerifierSlotVisitor.h */, 6478 6BCCEC0325D1FA27000F391D /* VerifierSlotVisitorInlines.h */, 6459 6479 0F4D8C721FC7A973001D32AC /* VisitCounter.h */, 6460 6480 0F952A9F1DF7860700E06FBD /* VisitRaceKey.cpp */, … … 9302 9322 E35E89FD25C50F870071EE1E /* BigInt64Array.h in Headers */, 9303 9323 86976E5F1FA3E8BC00E7C4E1 /* BigIntConstructor.h in Headers */, 9324 FE041553252EC0730091EB5D /* SlotVisitorMacros.h in Headers */, 9304 9325 866739D213BFDE710023D87C /* BigInteger.h in Headers */, 9305 9326 861816771FB7924200ECC4EC /* BigIntObject.h in Headers */, … … 9583 9604 0FD8A32617D51F5700CA2C40 /* DFGOSREntrypointCreationPhase.h in Headers */, 9584 9605 0FC0976A1468A6F700CF2442 /* DFGOSRExit.h in Headers */, 9606 FE912B4F2531193300FABDDF /* AbstractSlotVisitor.h in Headers */, 9585 9607 0F235BEC17178E7300690C7F /* DFGOSRExitBase.h in Headers */, 9586 9608 0FFB921C16D02F110055A5DB /* DFGOSRExitCompilationInfo.h in Headers */, … … 9869 9891 A513E5CB185F9624007E95AD /* InjectedScriptManager.h in Headers */, 9870 9892 A5840E21187B7B8600843B10 /* InjectedScriptModule.h in Headers */, 9893 FE287D02252FB2E800D723F9 /* VerifierSlotVisitor.h in Headers */, 9871 9894 A513E5C7185F9446007E95AD /* InjectedScriptSource.h in Headers */, 9872 9895 9959E9321BD18279001AA413 /* inline-and-minify-stylesheets-and-scripts.py in Headers */, … … 10008 10031 840480131021A1D9008E7F01 /* JSAPIValueWrapper.h in Headers */, 10009 10032 C2CF39C216E15A8100DD69BE /* JSAPIWrapperObject.h in Headers */, 10033 FE336B5325DB497D0098F034 /* MarkingConstraintExecutorPair.h in Headers */, 10010 10034 BC18C4170E16F5CD00B34460 /* JSArray.h in Headers */, 10011 10035 0F2B66E317B6B5AB00A7AE3F /* JSArrayBuffer.h in Headers */, … … 10044 10068 BC18C41E0E16F5CD00B34460 /* JSContextRef.h in Headers */, 10045 10069 A5EA70EE19F5B5C40098F5EC /* JSContextRefInspectorSupport.h in Headers */, 10070 6BCCEC0425D1FA27000F391D /* VerifierSlotVisitorInlines.h in Headers */, 10046 10071 A5D2E665195E174000A518E7 /* JSContextRefInternal.h in Headers */, 10047 10072 148CD1D8108CF902008163C6 /* JSContextRefPrivate.h in Headers */, … … 10175 10200 A7CA3AE817DA41AE006538AF /* JSWeakMap.h in Headers */, 10176 10201 A7482E93116A7CAD003B0712 /* JSWeakObjectMapRefInternal.h in Headers */, 10202 FE912B5125311AD100FABDDF /* AbstractSlotVisitorInlines.h in Headers */, 10177 10203 A7482B9311671147003B0712 /* JSWeakObjectMapRefPrivate.h in Headers */, 10178 10204 539BFBB022AD3CDC0023F4C0 /* JSWeakObjectRef.h in Headers */, -
trunk/Source/JavaScriptCore/Scripts/wkbuiltins/builtins_generate_internals_wrapper_header.py
r236321 r273138 1 1 #!/usr/bin/env python 2 2 # 3 # Copyright (c) 2016 Apple Inc. All rights reserved.3 # Copyright (c) 2016-2021 Apple Inc. All rights reserved. 4 4 # 5 5 # Redistribution and use in source and binary forms, with or without … … 94 94 def generate_methods(self): 95 95 return """ 96 void visit(JSC::SlotVisitor&);96 template<typename Visitor> void visit(Visitor&); 97 97 void initialize(JSDOMGlobalObject&); 98 98 """ -
trunk/Source/JavaScriptCore/Scripts/wkbuiltins/builtins_generate_internals_wrapper_implementation.py
r263885 r273138 1 1 #!/usr/bin/env python 2 2 # 3 # Copyright (c) 2016 Apple Inc. All rights reserved.3 # Copyright (c) 2016-2021 Apple Inc. All rights reserved. 4 4 # 5 5 # Redistribution and use in source and binary forms, with or without … … 121 121 122 122 def generate_visit_method(self): 123 lines = ["void JSBuiltinInternalFunctions::visit(JSC::SlotVisitor& visitor)", 123 lines = ["template<typename Visitor>", 124 "void JSBuiltinInternalFunctions::visit(Visitor& visitor)", 124 125 "{"] 125 126 for object in self.internals: … … 128 129 lines.append(" UNUSED_PARAM(visitor);") 129 130 lines.append("}\n") 131 lines.append("template void JSBuiltinInternalFunctions::visit(AbstractSlotVisitor&);") 132 lines.append("template void JSBuiltinInternalFunctions::visit(SlotVisitor&);\n") 130 133 return '\n'.join(lines) 131 134 -
trunk/Source/JavaScriptCore/Scripts/wkbuiltins/builtins_templates.py
r249509 r273138 1 1 #!/usr/bin/env python 2 2 # 3 # Copyright (c) 2014-20 19Apple Inc. All rights reserved.3 # Copyright (c) 2014-2021 Apple Inc. All rights reserved. 4 4 # Copyright (C) 2015 Canon Inc. All rights reserved. 5 5 # … … 189 189 190 190 void init(JSC::JSGlobalObject&); 191 void visit(JSC::SlotVisitor&);191 template<typename Visitor> void visit(Visitor&); 192 192 193 193 public: … … 208 208 } 209 209 210 inline void ${objectName}BuiltinFunctions::visit(JSC::SlotVisitor& visitor) 210 template<typename Visitor> 211 inline void ${objectName}BuiltinFunctions::visit(Visitor& visitor) 211 212 { 212 213 #define VISIT_FUNCTION(name) visitor.append(m_##name##Function); … … 214 215 #undef VISIT_FUNCTION 215 216 } 216 """) 217 218 template void ${objectName}BuiltinFunctions::visit(JSC::AbstractSlotVisitor&); 219 template void ${objectName}BuiltinFunctions::visit(JSC::SlotVisitor&); 220 221 """) -
trunk/Source/JavaScriptCore/Sources.txt
r272885 r273138 564 564 heap/SynchronousStopTheWorldMutatorScheduler.cpp 565 565 heap/Synchronousness.cpp 566 heap/VerifierSlotVisitor.cpp 566 567 heap/VisitRaceKey.cpp 567 568 heap/Weak.cpp -
trunk/Source/JavaScriptCore/bytecode/AccessCase.cpp
r272580 r273138 1 1 /* 2 * Copyright (C) 2017-202 0Apple Inc. All rights reserved.2 * Copyright (C) 2017-2021 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 758 758 } 759 759 760 bool AccessCase::propagateTransitions(SlotVisitor& visitor) const 760 template<typename Visitor> 761 bool AccessCase::propagateTransitions(Visitor& visitor) const 761 762 { 762 763 bool result = true; … … 773 774 case Transition: 774 775 case Delete: 775 if (visitor. vm().heap.isMarked(m_structure->previousID()))776 if (visitor.isMarked(m_structure->previousID())) 776 777 visitor.appendUnbarriered(m_structure.get()); 777 778 else … … 785 786 } 786 787 787 void AccessCase::visitAggregate(SlotVisitor& visitor) const 788 template bool AccessCase::propagateTransitions(AbstractSlotVisitor&) const; 789 template bool AccessCase::propagateTransitions(SlotVisitor&) const; 790 791 792 template<typename Visitor> 793 void AccessCase::visitAggregateImpl(Visitor& visitor) const 788 794 { 789 795 m_identifier.visitAggregate(visitor); 790 796 } 797 798 DEFINE_VISIT_AGGREGATE_WITH_MODIFIER(AccessCase, const); 791 799 792 800 void AccessCase::generateWithGuard( -
trunk/Source/JavaScriptCore/bytecode/AccessCase.h
r272580 r273138 1 1 /* 2 * Copyright (C) 2017-202 0Apple Inc. All rights reserved.2 * Copyright (C) 2017-2021 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 281 281 void forEachDependentCell(VM&, const Functor&) const; 282 282 283 void visitAggregate(SlotVisitor&) const;283 DECLARE_VISIT_AGGREGATE_WITH_MODIFIER(const); 284 284 bool visitWeak(VM&) const; 285 bool propagateTransitions(SlotVisitor&) const;285 template<typename Visitor> bool propagateTransitions(Visitor&) const; 286 286 287 287 // FIXME: This only exists because of how AccessCase puts post-generation things into itself. -
trunk/Source/JavaScriptCore/bytecode/ByValInfo.cpp
r261755 r273138 1 1 /* 2 * Copyright (C) 2020 Apple Inc. All rights reserved.2 * Copyright (C) 2020-2021 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 33 33 #if ENABLE(JIT) 34 34 35 void ByValInfo::visitAggregate(SlotVisitor& visitor) 35 template<typename Visitor> 36 void ByValInfo::visitAggregateImpl(Visitor& visitor) 36 37 { 37 38 cachedId.visitAggregate(visitor); 38 39 } 39 40 41 DEFINE_VISIT_AGGREGATE(ByValInfo); 42 40 43 #endif // ENABLE(JIT) 41 44 -
trunk/Source/JavaScriptCore/bytecode/ByValInfo.h
r272170 r273138 1 1 /* 2 * Copyright (C) 2012-20 18Apple Inc. All rights reserved.2 * Copyright (C) 2012-2021 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 261 261 } 262 262 263 void visitAggregate(SlotVisitor&);263 DECLARE_VISIT_AGGREGATE; 264 264 265 265 CodeLocationJump<JSInternalPtrTag> notIndexJump; -
trunk/Source/JavaScriptCore/bytecode/CheckPrivateBrandStatus.cpp
r272580 r273138 229 229 } 230 230 231 void CheckPrivateBrandStatus::visitAggregate(SlotVisitor& visitor) 231 template<typename Visitor> 232 void CheckPrivateBrandStatus::visitAggregateImpl(Visitor& visitor) 232 233 { 233 234 for (CheckPrivateBrandVariant& variant : m_variants) … … 235 236 } 236 237 237 void CheckPrivateBrandStatus::markIfCheap(SlotVisitor& visitor) 238 DEFINE_VISIT_AGGREGATE(CheckPrivateBrandStatus); 239 240 template<typename Visitor> 241 void CheckPrivateBrandStatus::markIfCheap(Visitor& visitor) 238 242 { 239 243 for (CheckPrivateBrandVariant& variant : m_variants) 240 244 variant.markIfCheap(visitor); 241 245 } 246 247 template void CheckPrivateBrandStatus::markIfCheap(AbstractSlotVisitor&); 248 template void CheckPrivateBrandStatus::markIfCheap(SlotVisitor&); 242 249 243 250 bool CheckPrivateBrandStatus::finalize(VM& vm) -
trunk/Source/JavaScriptCore/bytecode/CheckPrivateBrandStatus.h
r272580 r273138 83 83 void filter(const StructureSet&); 84 84 85 void visitAggregate(SlotVisitor&);86 void markIfCheap(SlotVisitor&);85 DECLARE_VISIT_AGGREGATE; 86 template<typename Visitor> void markIfCheap(Visitor&); 87 87 bool finalize(VM&); 88 88 -
trunk/Source/JavaScriptCore/bytecode/CheckPrivateBrandVariant.cpp
r272612 r273138 52 52 } 53 53 54 void CheckPrivateBrandVariant::markIfCheap(SlotVisitor& visitor) 54 template<typename Visitor> 55 void CheckPrivateBrandVariant::markIfCheap(Visitor& visitor) 55 56 { 56 57 m_structureSet.markIfCheap(visitor); 57 58 } 59 60 template void CheckPrivateBrandVariant::markIfCheap(AbstractSlotVisitor&); 61 template void CheckPrivateBrandVariant::markIfCheap(SlotVisitor&); 58 62 59 63 bool CheckPrivateBrandVariant::finalize(VM& vm) … … 64 68 } 65 69 66 void CheckPrivateBrandVariant::visitAggregate(SlotVisitor& visitor) 70 template<typename Visitor> 71 void CheckPrivateBrandVariant::visitAggregateImpl(Visitor& visitor) 67 72 { 68 73 m_identifier.visitAggregate(visitor); 69 74 } 75 76 DEFINE_VISIT_AGGREGATE(CheckPrivateBrandVariant); 70 77 71 78 void CheckPrivateBrandVariant::dump(PrintStream& out) const -
trunk/Source/JavaScriptCore/bytecode/CheckPrivateBrandVariant.h
r272612 r273138 47 47 bool attemptToMerge(const CheckPrivateBrandVariant& other); 48 48 49 void visitAggregate(SlotVisitor&);50 void markIfCheap(SlotVisitor&);49 DECLARE_VISIT_AGGREGATE; 50 template<typename Visitor> void markIfCheap(Visitor&); 51 51 bool finalize(VM&); 52 52 -
trunk/Source/JavaScriptCore/bytecode/CodeBlock.cpp
r273135 r273138 282 282 , m_hasBeenCompiledWithFTL(false) 283 283 , m_hasLinkedOSRExit(false) 284 , m_isEligibleForLLIntDowngrade(false) 284 , m_isEligibleForLLIntDowngrade(false) 285 285 , m_numCalleeLocals(other.m_numCalleeLocals) 286 286 , m_numVars(other.m_numVars) … … 977 977 } 978 978 979 void CodeBlock::visitChildren(JSCell* cell, SlotVisitor& visitor) 979 template<typename Visitor> 980 void CodeBlock::visitChildrenImpl(JSCell* cell, Visitor& visitor) 980 981 { 981 982 CodeBlock* thisObject = jsCast<CodeBlock*>(cell); … … 986 987 } 987 988 988 void CodeBlock::visitChildren(SlotVisitor& visitor) 989 DEFINE_VISIT_CHILDREN(CodeBlock); 990 991 template<typename Visitor> 992 void CodeBlock::visitChildren(Visitor& visitor) 989 993 { 990 994 ConcurrentJSLocker locker(m_lock); 995 996 // In CodeBlock::shouldVisitStrongly() we may have decided to skip visiting this 997 // codeBlock. However, if we end up visiting it anyway due to other references, 998 // we can clear this flag and allow the verifier GC to visit it as well. 999 m_visitChildrenSkippedDueToOldAge = false; 991 1000 if (CodeBlock* otherBlock = specialOSREntryBlockOrNull()) 992 1001 visitor.appendUnbarriered(otherBlock); … … 1005 1014 } 1006 1015 1007 bool CodeBlock::shouldVisitStrongly(const ConcurrentJSLocker& locker) 1016 template<typename Visitor> 1017 bool CodeBlock::shouldVisitStrongly(const ConcurrentJSLocker& locker, Visitor& visitor) 1008 1018 { 1009 1019 if (Options::forceCodeBlockLiveness()) 1010 1020 return true; 1011 1021 1012 if (shouldJettisonDueToOldAge(locker)) 1022 if (shouldJettisonDueToOldAge(locker, visitor)) { 1023 if (Options::verifyGC()) 1024 m_visitChildrenSkippedDueToOldAge = true; 1013 1025 return false; 1026 } 1027 1028 if (UNLIKELY(m_visitChildrenSkippedDueToOldAge)) { 1029 RELEASE_ASSERT(Options::verifyGC()); 1030 return false; 1031 } 1014 1032 1015 1033 // Interpreter and Baseline JIT CodeBlocks don't need to be jettisoned when … … 1021 1039 return false; 1022 1040 } 1041 1042 template bool CodeBlock::shouldVisitStrongly(const ConcurrentJSLocker&, AbstractSlotVisitor&); 1043 template bool CodeBlock::shouldVisitStrongly(const ConcurrentJSLocker&, SlotVisitor&); 1023 1044 1024 1045 bool CodeBlock::shouldJettisonDueToWeakReference(VM& vm) … … 1062 1083 } 1063 1084 1064 bool CodeBlock::shouldJettisonDueToOldAge(const ConcurrentJSLocker&) 1065 { 1066 if (m_vm->heap.isMarked(this)) 1085 template<typename Visitor> 1086 ALWAYS_INLINE bool CodeBlock::shouldJettisonDueToOldAge(const ConcurrentJSLocker&, Visitor& visitor) 1087 { 1088 if (visitor.isMarked(this)) 1067 1089 return false; 1068 1090 … … 1077 1099 1078 1100 #if ENABLE(DFG_JIT) 1079 static bool shouldMarkTransition(VM& vm, DFG::WeakReferenceTransition& transition) 1080 { 1081 if (transition.m_codeOrigin && !vm.heap.isMarked(transition.m_codeOrigin.get())) 1101 template<typename Visitor> 1102 static inline bool shouldMarkTransition(Visitor& visitor, DFG::WeakReferenceTransition& transition) 1103 { 1104 if (transition.m_codeOrigin && !visitor.isMarked(transition.m_codeOrigin.get())) 1082 1105 return false; 1083 1106 1084 if (!v m.heap.isMarked(transition.m_from.get()))1107 if (!visitor.isMarked(transition.m_from.get())) 1085 1108 return false; 1086 1109 … … 1098 1121 #endif // ENABLE(DFG_JIT) 1099 1122 1100 void CodeBlock::propagateTransitions(const ConcurrentJSLocker&, SlotVisitor& visitor) 1101 { 1123 template<typename Visitor> 1124 void CodeBlock::propagateTransitions(const ConcurrentJSLocker&, Visitor& visitor) 1125 { 1126 typename Visitor::SuppressGCVerifierScope suppressScope(visitor); 1102 1127 VM& vm = *m_vm; 1103 1128 … … 1109 1134 if (!oldStructureID || !newStructureID) 1110 1135 return; 1136 1111 1137 Structure* oldStructure = vm.heap.structureIDTable().get(oldStructureID); 1112 if (v m.heap.isMarked(oldStructure)) {1138 if (visitor.isMarked(oldStructure)) { 1113 1139 Structure* newStructure = vm.heap.structureIDTable().get(newStructureID); 1114 1140 visitor.appendUnbarriered(newStructure); … … 1124 1150 JSCell* property = metadata.m_property.get(); 1125 1151 ASSERT(property); 1126 if (!v m.heap.isMarked(property))1152 if (!visitor.isMarked(property)) 1127 1153 return; 1128 1154 1129 1155 Structure* oldStructure = vm.heap.structureIDTable().get(oldStructureID); 1130 if (v m.heap.isMarked(oldStructure)) {1156 if (visitor.isMarked(oldStructure)) { 1131 1157 Structure* newStructure = vm.heap.structureIDTable().get(newStructureID); 1132 1158 visitor.appendUnbarriered(newStructure); … … 1142 1168 JSCell* brand = metadata.m_brand.get(); 1143 1169 ASSERT(brand); 1144 if (!v m.heap.isMarked(brand))1170 if (!visitor.isMarked(brand)) 1145 1171 return; 1146 1172 1147 1173 Structure* oldStructure = vm.heap.structureIDTable().get(oldStructureID); 1148 if (v m.heap.isMarked(oldStructure)) {1174 if (visitor.isMarked(oldStructure)) { 1149 1175 Structure* newStructure = vm.heap.structureIDTable().get(newStructureID); 1150 1176 visitor.appendUnbarriered(newStructure); … … 1173 1199 1174 1200 for (auto& transition : dfgCommon->transitions) { 1175 if (shouldMarkTransition(v m, transition)) {1201 if (shouldMarkTransition(visitor, transition)) { 1176 1202 // If the following three things are live, then the target of the 1177 1203 // transition is also live: … … 1200 1226 } 1201 1227 1202 void CodeBlock::determineLiveness(const ConcurrentJSLocker&, SlotVisitor& visitor) 1228 template void CodeBlock::propagateTransitions(const ConcurrentJSLocker&, AbstractSlotVisitor&); 1229 template void CodeBlock::propagateTransitions(const ConcurrentJSLocker&, SlotVisitor&); 1230 1231 template<typename Visitor> 1232 void CodeBlock::determineLiveness(const ConcurrentJSLocker&, Visitor& visitor) 1203 1233 { 1204 1234 UNUSED_PARAM(visitor); … … 1206 1236 #if ENABLE(DFG_JIT) 1207 1237 VM& vm = *m_vm; 1208 if (v m.heap.isMarked(this))1238 if (visitor.isMarked(this)) 1209 1239 return; 1210 1240 … … 1223 1253 JSCell* reference = dfgCommon->weakReferences[i].get(); 1224 1254 ASSERT(!jsDynamicCast<CodeBlock*>(vm, reference)); 1225 if (!v m.heap.isMarked(reference)) {1255 if (!visitor.isMarked(reference)) { 1226 1256 allAreLiveSoFar = false; 1227 1257 break; … … 1231 1261 for (StructureID structureID : dfgCommon->weakStructureReferences) { 1232 1262 Structure* structure = vm.getStructure(structureID); 1233 if (!v m.heap.isMarked(structure)) {1263 if (!visitor.isMarked(structure)) { 1234 1264 allAreLiveSoFar = false; 1235 1265 break; … … 1248 1278 #endif // ENABLE(DFG_JIT) 1249 1279 } 1280 1281 template void CodeBlock::determineLiveness(const ConcurrentJSLocker&, AbstractSlotVisitor&); 1282 template void CodeBlock::determineLiveness(const ConcurrentJSLocker&, SlotVisitor&); 1250 1283 1251 1284 void CodeBlock::finalizeLLIntInlineCaches() … … 1592 1625 1593 1626 VM::SpaceAndSet::setFor(*subspace()).remove(this); 1627 1628 // In CodeBlock::shouldVisitStrongly() we may have decided to skip visiting this 1629 // codeBlock. By the time we get here, we're done with the verifier GC. So, let's 1630 // reset this flag for the next GC cycle. 1631 m_visitChildrenSkippedDueToOldAge = false; 1594 1632 } 1595 1633 … … 1784 1822 #endif 1785 1823 1786 void CodeBlock::visitOSRExitTargets(const ConcurrentJSLocker&, SlotVisitor& visitor) 1824 template<typename Visitor> 1825 void CodeBlock::visitOSRExitTargets(const ConcurrentJSLocker&, Visitor& visitor) 1787 1826 { 1788 1827 // We strongly visit OSR exits targets because we don't want to deal with … … 1804 1843 } 1805 1844 1806 void CodeBlock::stronglyVisitStrongReferences(const ConcurrentJSLocker& locker, SlotVisitor& visitor) 1845 template<typename Visitor> 1846 void CodeBlock::stronglyVisitStrongReferences(const ConcurrentJSLocker& locker, Visitor& visitor) 1807 1847 { 1808 1848 UNUSED_PARAM(locker); … … 1840 1880 } 1841 1881 1842 void CodeBlock::stronglyVisitWeakReferences(const ConcurrentJSLocker&, SlotVisitor& visitor) 1882 template<typename Visitor> 1883 void CodeBlock::stronglyVisitWeakReferences(const ConcurrentJSLocker&, Visitor& visitor) 1843 1884 { 1844 1885 UNUSED_PARAM(visitor); -
trunk/Source/JavaScriptCore/bytecode/CodeBlock.h
r273135 r273138 1 1 /* 2 * Copyright (C) 2008-202 0Apple Inc. All rights reserved.2 * Copyright (C) 2008-2021 Apple Inc. All rights reserved. 3 3 * Copyright (C) 2008 Cameron Zwarich <cwzwarich@uwaterloo.ca> 4 4 * … … 202 202 CodeBlock* baselineVersion(); 203 203 204 DECLARE_VISIT_CHILDREN; 205 204 206 static size_t estimatedSize(JSCell*, VM&); 205 static void visitChildren(JSCell*, SlotVisitor&);206 207 static void destroy(JSCell*); 207 void visitChildren(SlotVisitor&);208 208 void finalizeUnconditionally(VM&); 209 209 … … 870 870 bool m_hasLinkedOSRExit : 1; 871 871 bool m_isEligibleForLLIntDowngrade : 1; 872 bool m_visitChildrenSkippedDueToOldAge { false }; 872 873 873 874 // Internal methods for use by validation code. It would be private if it wasn't … … 944 945 friend class ExecutableToCodeBlockEdge; 945 946 947 template<typename Visitor> ALWAYS_INLINE void visitChildren(Visitor&); 948 946 949 BytecodeLivenessAnalysis& livenessAnalysisSlow(); 947 950 … … 962 965 } 963 966 964 bool shouldVisitStrongly(const ConcurrentJSLocker&);967 template<typename Visitor> bool shouldVisitStrongly(const ConcurrentJSLocker&, Visitor&); 965 968 bool shouldJettisonDueToWeakReference(VM&); 966 bool shouldJettisonDueToOldAge(const ConcurrentJSLocker&);967 968 void propagateTransitions(const ConcurrentJSLocker&, SlotVisitor&);969 void determineLiveness(const ConcurrentJSLocker&, SlotVisitor&);969 template<typename Visitor> bool shouldJettisonDueToOldAge(const ConcurrentJSLocker&, Visitor&); 970 971 template<typename Visitor> void propagateTransitions(const ConcurrentJSLocker&, Visitor&); 972 template<typename Visitor> void determineLiveness(const ConcurrentJSLocker&, Visitor&); 970 973 971 void stronglyVisitStrongReferences(const ConcurrentJSLocker&, SlotVisitor&);972 void stronglyVisitWeakReferences(const ConcurrentJSLocker&, SlotVisitor&);973 void visitOSRExitTargets(const ConcurrentJSLocker&, SlotVisitor&);974 template<typename Visitor> void stronglyVisitStrongReferences(const ConcurrentJSLocker&, Visitor&); 975 template<typename Visitor> void stronglyVisitWeakReferences(const ConcurrentJSLocker&, Visitor&); 976 template<typename Visitor> void visitOSRExitTargets(const ConcurrentJSLocker&, Visitor&); 974 977 975 978 unsigned numberOfNonArgumentValueProfiles() { return m_numberOfNonArgumentValueProfiles; } -
trunk/Source/JavaScriptCore/bytecode/DeleteByIdVariant.cpp
r261755 r273138 1 1 /* 2 * Copyright (C) 2020 Apple Inc. All rights reserved.2 * Copyright (C) 2020-2021 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 89 89 } 90 90 91 void DeleteByIdVariant::visitAggregate(SlotVisitor& visitor) 91 template<typename Visitor> 92 void DeleteByIdVariant::visitAggregateImpl(Visitor& visitor) 92 93 { 93 94 m_identifier.visitAggregate(visitor); 94 95 } 95 96 96 void DeleteByIdVariant::markIfCheap(SlotVisitor& visitor) 97 DEFINE_VISIT_AGGREGATE(DeleteByIdVariant); 98 99 template<typename Visitor> 100 void DeleteByIdVariant::markIfCheap(Visitor& visitor) 97 101 { 98 102 if (m_oldStructure) … … 101 105 m_newStructure->markIfCheap(visitor); 102 106 } 107 108 template void DeleteByIdVariant::markIfCheap(AbstractSlotVisitor&); 109 template void DeleteByIdVariant::markIfCheap(SlotVisitor&); 103 110 104 111 void DeleteByIdVariant::dump(PrintStream& out) const -
trunk/Source/JavaScriptCore/bytecode/DeleteByIdVariant.h
r259583 r273138 1 1 /* 2 * Copyright (C) 2020 Apple Inc. All rights reserved.2 * Copyright (C) 2020-2021 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 62 62 bool attemptToMerge(const DeleteByIdVariant& other); 63 63 64 void visitAggregate(SlotVisitor&);65 void markIfCheap(SlotVisitor&);64 DECLARE_VISIT_AGGREGATE; 65 template<typename Visitor> void markIfCheap(Visitor&); 66 66 bool finalize(VM&); 67 67 -
trunk/Source/JavaScriptCore/bytecode/DeleteByStatus.cpp
r261755 r273138 1 1 /* 2 * Copyright (C) 2020 Apple Inc. All rights reserved.2 * Copyright (C) 2020-2021 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 255 255 } 256 256 257 void DeleteByStatus::visitAggregate(SlotVisitor& visitor) 257 template<typename Visitor> 258 void DeleteByStatus::visitAggregateImpl(Visitor& visitor) 258 259 { 259 260 for (DeleteByIdVariant& variant : m_variants) … … 261 262 } 262 263 263 void DeleteByStatus::markIfCheap(SlotVisitor& visitor) 264 DEFINE_VISIT_AGGREGATE(DeleteByStatus); 265 266 template<typename Visitor> 267 void DeleteByStatus::markIfCheap(Visitor& visitor) 264 268 { 265 269 for (DeleteByIdVariant& variant : m_variants) 266 270 variant.markIfCheap(visitor); 267 271 } 272 273 template void DeleteByStatus::markIfCheap(AbstractSlotVisitor&); 274 template void DeleteByStatus::markIfCheap(SlotVisitor&); 268 275 269 276 bool DeleteByStatus::finalize(VM& vm) -
trunk/Source/JavaScriptCore/bytecode/DeleteByStatus.h
r259583 r273138 1 1 /* 2 * Copyright (C) 2020 Apple Inc. All rights reserved.2 * Copyright (C) 2020-2021 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 82 82 void filter(const StructureSet&); 83 83 84 void visitAggregate(SlotVisitor&);85 void markIfCheap(SlotVisitor&);84 DECLARE_VISIT_AGGREGATE; 85 template<typename Visitor> void markIfCheap(Visitor&); 86 86 bool finalize(VM&); 87 87 -
trunk/Source/JavaScriptCore/bytecode/DirectEvalCodeCache.cpp
r261895 r273138 1 1 /* 2 * Copyright (C) 2016 Apple Inc. All rights reserved.2 * Copyright (C) 2016-2021 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 46 46 } 47 47 48 void DirectEvalCodeCache::visitAggregate(SlotVisitor& visitor) 48 template<typename Visitor> 49 void DirectEvalCodeCache::visitAggregateImpl(Visitor& visitor) 49 50 { 50 51 LockHolder locker(m_lock); … … 54 55 } 55 56 57 DEFINE_VISIT_AGGREGATE(DirectEvalCodeCache); 58 56 59 } // namespace JSC 57 -
trunk/Source/JavaScriptCore/bytecode/DirectEvalCodeCache.h
r251425 r273138 1 1 /* 2 * Copyright (C) 2008-20 19Apple Inc. All rights reserved.2 * Copyright (C) 2008-2021 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 98 98 bool isEmpty() const { return m_cacheMap.isEmpty(); } 99 99 100 void visitAggregate(SlotVisitor&);100 DECLARE_VISIT_AGGREGATE; 101 101 102 102 void clear(); -
trunk/Source/JavaScriptCore/bytecode/ExecutableToCodeBlockEdge.cpp
r254327 r273138 1 1 /* 2 * Copyright (C) 2018 Apple Inc. All rights reserved.2 * Copyright (C) 2018-2021 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 54 54 } 55 55 56 void ExecutableToCodeBlockEdge::visitChildren(JSCell* cell, SlotVisitor& visitor) 56 template<typename Visitor> 57 void ExecutableToCodeBlockEdge::visitChildrenImpl(JSCell* cell, Visitor& visitor) 57 58 { 58 59 VM& vm = visitor.vm(); … … 62 63 63 64 CodeBlock* codeBlock = edge->m_codeBlock.get(); 64 65 65 66 // It's possible for someone to hold a pointer to the edge after the edge has cleared its weak 66 67 // reference to the codeBlock. In a conservative GC like ours, that could happen at random for … … 76 77 77 78 ConcurrentJSLocker locker(codeBlock->m_lock); 78 79 if (codeBlock->shouldVisitStrongly(locker ))79 80 if (codeBlock->shouldVisitStrongly(locker, visitor)) 80 81 visitor.appendUnbarriered(codeBlock); 81 82 82 if (!v m.heap.isMarked(codeBlock))83 if (!visitor.isMarked(codeBlock)) 83 84 vm.executableToCodeBlockEdgesWithFinalizers.add(edge); 84 85 … … 118 119 } 119 120 120 void ExecutableToCodeBlockEdge::visitOutputConstraints(JSCell* cell, SlotVisitor& visitor) 121 DEFINE_VISIT_CHILDREN(ExecutableToCodeBlockEdge); 122 123 template<typename Visitor> 124 void ExecutableToCodeBlockEdge::visitOutputConstraintsImpl(JSCell* cell, Visitor& visitor) 121 125 { 122 126 VM& vm = visitor.vm(); … … 125 129 edge->runConstraint(NoLockingNecessary, vm, visitor); 126 130 } 131 132 DEFINE_VISIT_OUTPUT_CONSTRAINTS(ExecutableToCodeBlockEdge); 127 133 128 134 void ExecutableToCodeBlockEdge::finalizeUnconditionally(VM& vm) … … 187 193 } 188 194 189 void ExecutableToCodeBlockEdge::runConstraint(const ConcurrentJSLocker& locker, VM& vm, SlotVisitor& visitor) 195 template<typename Visitor> 196 void ExecutableToCodeBlockEdge::runConstraint(const ConcurrentJSLocker& locker, VM& vm, Visitor& visitor) 190 197 { 191 198 CodeBlock* codeBlock = m_codeBlock.get(); … … 193 200 codeBlock->propagateTransitions(locker, visitor); 194 201 codeBlock->determineLiveness(locker, visitor); 195 196 if (v m.heap.isMarked(codeBlock))202 203 if (visitor.isMarked(codeBlock)) 197 204 vm.executableToCodeBlockEdgesWithConstraints.remove(this); 198 205 } 199 206 207 template void ExecutableToCodeBlockEdge::runConstraint(const ConcurrentJSLocker&, VM&, AbstractSlotVisitor&); 208 template void ExecutableToCodeBlockEdge::runConstraint(const ConcurrentJSLocker&, VM&, SlotVisitor&); 209 210 200 211 } // namespace JSC 201 212 -
trunk/Source/JavaScriptCore/bytecode/ExecutableToCodeBlockEdge.h
r250005 r273138 1 1 /* 2 * Copyright (C) 2018-20 19Apple Inc. All rights reserved.2 * Copyright (C) 2018-2021 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 54 54 55 55 CodeBlock* codeBlock() const { return m_codeBlock.get(); } 56 57 static void visitChildren(JSCell*, SlotVisitor&);58 static void visitOutputConstraints(JSCell*, SlotVisitor&);56 57 DECLARE_VISIT_CHILDREN; 58 DECLARE_VISIT_OUTPUT_CONSTRAINTS; 59 59 void finalizeUnconditionally(VM&); 60 60 … … 82 82 void deactivate(); 83 83 bool isActive() const; 84 85 void runConstraint(const ConcurrentJSLocker&, VM&, SlotVisitor&);86 84 85 template<typename Visitor> void runConstraint(const ConcurrentJSLocker&, VM&, Visitor&); 86 87 87 WriteBarrier<CodeBlock> m_codeBlock; 88 88 }; -
trunk/Source/JavaScriptCore/bytecode/GetByIdVariant.cpp
r270764 r273138 1 1 /* 2 * Copyright (C) 2014-202 0Apple Inc. All rights reserved.2 * Copyright (C) 2014-2021 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 157 157 } 158 158 159 void GetByIdVariant::visitAggregate(SlotVisitor& visitor) 159 template<typename Visitor> 160 void GetByIdVariant::visitAggregateImpl(Visitor& visitor) 160 161 { 161 162 m_identifier.visitAggregate(visitor); 162 163 } 163 164 164 void GetByIdVariant::markIfCheap(SlotVisitor& visitor) 165 DEFINE_VISIT_AGGREGATE(GetByIdVariant); 166 167 template<typename Visitor> 168 void GetByIdVariant::markIfCheap(Visitor& visitor) 165 169 { 166 170 m_structureSet.markIfCheap(visitor); 167 171 } 172 173 template void GetByIdVariant::markIfCheap(AbstractSlotVisitor&); 174 template void GetByIdVariant::markIfCheap(SlotVisitor&); 168 175 169 176 bool GetByIdVariant::finalize(VM& vm) -
trunk/Source/JavaScriptCore/bytecode/GetByIdVariant.h
r270764 r273138 1 1 /* 2 * Copyright (C) 2014-202 0Apple Inc. All rights reserved.2 * Copyright (C) 2014-2021 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 78 78 bool attemptToMerge(const GetByIdVariant& other); 79 79 80 void visitAggregate(SlotVisitor&);81 void markIfCheap(SlotVisitor&);80 DECLARE_VISIT_AGGREGATE; 81 template<typename Visitor> void markIfCheap(Visitor&); 82 82 bool finalize(VM&); 83 83 -
trunk/Source/JavaScriptCore/bytecode/GetByStatus.cpp
r270764 r273138 1 1 /* 2 * Copyright (C) 2012-202 0Apple Inc. All rights reserved.2 * Copyright (C) 2012-2021 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 531 531 } 532 532 533 void GetByStatus::visitAggregate(SlotVisitor& visitor) 533 template<typename Visitor> 534 void GetByStatus::visitAggregateImpl(Visitor& visitor) 534 535 { 535 536 if (isModuleNamespace()) … … 539 540 } 540 541 541 void GetByStatus::markIfCheap(SlotVisitor& visitor) 542 DEFINE_VISIT_AGGREGATE(GetByStatus); 543 544 template<typename Visitor> 545 void GetByStatus::markIfCheap(Visitor& visitor) 542 546 { 543 547 for (GetByIdVariant& variant : m_variants) 544 548 variant.markIfCheap(visitor); 545 549 } 550 551 template void GetByStatus::markIfCheap(AbstractSlotVisitor&); 552 template void GetByStatus::markIfCheap(SlotVisitor&); 546 553 547 554 bool GetByStatus::finalize(VM& vm) -
trunk/Source/JavaScriptCore/bytecode/GetByStatus.h
r254464 r273138 1 1 /* 2 * Copyright (C) 2012-202 0Apple Inc. All rights reserved.2 * Copyright (C) 2012-2021 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 119 119 ScopeOffset scopeOffset() const { return m_moduleNamespaceData->m_scopeOffset; } 120 120 121 void visitAggregate(SlotVisitor&);122 void markIfCheap(SlotVisitor&);121 DECLARE_VISIT_AGGREGATE; 122 template<typename Visitor> void markIfCheap(Visitor&); 123 123 bool finalize(VM&); // Return true if this gets to live. 124 124 -
trunk/Source/JavaScriptCore/bytecode/InByIdStatus.cpp
r261755 r273138 1 1 /* 2 2 * Copyright (C) 2018 Yusuke Suzuki <utatane.tea@gmail.com>. 3 * Copyright (C) 2018 Apple Inc. All rights reserved.3 * Copyright (C) 2018-2021 Apple Inc. All rights reserved. 4 4 * 5 5 * Redistribution and use in source and binary forms, with or without … … 252 252 } 253 253 254 void InByIdStatus::markIfCheap(SlotVisitor& visitor) 254 template<typename Visitor> 255 void InByIdStatus::markIfCheap(Visitor& visitor) 255 256 { 256 257 for (InByIdVariant& variant : m_variants) 257 258 variant.markIfCheap(visitor); 258 259 } 260 261 template void InByIdStatus::markIfCheap(AbstractSlotVisitor&); 262 template void InByIdStatus::markIfCheap(SlotVisitor&); 259 263 260 264 bool InByIdStatus::finalize(VM& vm) -
trunk/Source/JavaScriptCore/bytecode/InByIdStatus.h
r255542 r273138 1 1 /* 2 2 * Copyright (C) 2018 Yusuke Suzuki <utatane.tea@gmail.com>. 3 * Copyright (C) 2018 Apple Inc. All rights reserved.3 * Copyright (C) 2018-2021 Apple Inc. All rights reserved. 4 4 * 5 5 * Redistribution and use in source and binary forms, with or without … … 107 107 void filter(const StructureSet&); 108 108 109 void markIfCheap(SlotVisitor&);109 template<typename Visitor> void markIfCheap(Visitor&); 110 110 bool finalize(VM&); 111 111 -
trunk/Source/JavaScriptCore/bytecode/InByIdVariant.cpp
r261755 r273138 1 1 /* 2 2 * Copyright (C) 2018 Yusuke Suzuki <utatane.tea@gmail.com>. 3 * Copyright (C) 2018 Apple Inc. All rights reserved.3 * Copyright (C) 2018-2021 Apple Inc. All rights reserved. 4 4 * 5 5 * Redistribution and use in source and binary forms, with or without … … 65 65 } 66 66 67 void InByIdVariant::markIfCheap(SlotVisitor& visitor) 67 template<typename Visitor> 68 void InByIdVariant::markIfCheap(Visitor& visitor) 68 69 { 69 70 m_structureSet.markIfCheap(visitor); 70 71 } 72 73 template void InByIdVariant::markIfCheap(AbstractSlotVisitor&); 74 template void InByIdVariant::markIfCheap(SlotVisitor&); 71 75 72 76 bool InByIdVariant::finalize(VM& vm) -
trunk/Source/JavaScriptCore/bytecode/InByIdVariant.h
r252763 r273138 1 1 /* 2 2 * Copyright (C) 2018 Yusuke Suzuki <utatane.tea@gmail.com>. 3 * Copyright (C) 2018 Apple Inc. All rights reserved.3 * Copyright (C) 2018-2021 Apple Inc. All rights reserved. 4 4 * 5 5 * Redistribution and use in source and binary forms, with or without … … 58 58 bool attemptToMerge(const InByIdVariant& other); 59 59 60 void markIfCheap(SlotVisitor&);60 template<typename Visitor> void markIfCheap(Visitor&); 61 61 bool finalize(VM&); 62 62 -
trunk/Source/JavaScriptCore/bytecode/InternalFunctionAllocationProfile.h
r255416 r273138 1 1 /* 2 * Copyright (C) 2016-20 17Apple Inc. All rights reserved.2 * Copyright (C) 2016-2021 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 40 40 41 41 void clear() { m_structure.clear(); } 42 void visitAggregate(SlotVisitor& visitor) { visitor.append(m_structure); }42 template<typename Visitor> void visitAggregate(Visitor& visitor) { visitor.append(m_structure); } 43 43 44 44 private: -
trunk/Source/JavaScriptCore/bytecode/ObjectAllocationProfile.h
r246553 r273138 1 1 /* 2 * Copyright (C) 2013-20 17Apple Inc. All rights reserved.2 * Copyright (C) 2013-2021 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 65 65 } 66 66 67 void visitAggregate(SlotVisitor& visitor) 67 template<typename Visitor> 68 void visitAggregate(Visitor& visitor) 68 69 { 69 70 visitor.append(m_structure); … … 111 112 } 112 113 113 void visitAggregate(SlotVisitor& visitor) 114 template<typename Visitor> 115 void visitAggregate(Visitor& visitor) 114 116 { 115 117 Base::visitAggregate(visitor); -
trunk/Source/JavaScriptCore/bytecode/PolymorphicAccess.cpp
r272580 r273138 1 1 /* 2 * Copyright (C) 2014-202 0Apple Inc. All rights reserved.2 * Copyright (C) 2014-2021 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 359 359 } 360 360 361 bool PolymorphicAccess::propagateTransitions(SlotVisitor& visitor) const 361 template<typename Visitor> 362 bool PolymorphicAccess::propagateTransitions(Visitor& visitor) const 362 363 { 363 364 bool result = true; … … 367 368 } 368 369 369 void PolymorphicAccess::visitAggregate(SlotVisitor& visitor) 370 template bool PolymorphicAccess::propagateTransitions(AbstractSlotVisitor&) const; 371 template bool PolymorphicAccess::propagateTransitions(SlotVisitor&) const; 372 373 template<typename Visitor> 374 void PolymorphicAccess::visitAggregateImpl(Visitor& visitor) 370 375 { 371 376 for (unsigned i = 0; i < size(); ++i) 372 377 at(i).visitAggregate(visitor); 373 378 } 379 380 DEFINE_VISIT_AGGREGATE(PolymorphicAccess); 374 381 375 382 void PolymorphicAccess::dump(PrintStream& out) const -
trunk/Source/JavaScriptCore/bytecode/PolymorphicAccess.h
r265997 r273138 1 1 /* 2 * Copyright (C) 2014-202 0Apple Inc. All rights reserved.2 * Copyright (C) 2014-2021 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 153 153 const AccessCase& operator[](unsigned i) const { return *m_list[i]; } 154 154 155 void visitAggregate(SlotVisitor&);155 DECLARE_VISIT_AGGREGATE; 156 156 157 157 // If this returns false then we are requesting a reset of the owning StructureStubInfo. … … 160 160 // This returns true if it has marked everything it will ever marked. This can be used as an 161 161 // optimization to then avoid calling this method again during the fixpoint. 162 bool propagateTransitions(SlotVisitor&) const;162 template<typename Visitor> bool propagateTransitions(Visitor&) const; 163 163 164 164 void aboutToDie(); -
trunk/Source/JavaScriptCore/bytecode/PutByIdStatus.cpp
r267489 r273138 1 1 /* 2 * Copyright (C) 2012-20 19Apple Inc. All rights reserved.2 * Copyright (C) 2012-2021 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 397 397 } 398 398 399 void PutByIdStatus::markIfCheap(SlotVisitor& visitor) 399 template<typename Visitor> 400 void PutByIdStatus::markIfCheap(Visitor& visitor) 400 401 { 401 402 for (PutByIdVariant& variant : m_variants) 402 403 variant.markIfCheap(visitor); 403 404 } 405 406 template void PutByIdStatus::markIfCheap(AbstractSlotVisitor&); 407 template void PutByIdStatus::markIfCheap(SlotVisitor&); 404 408 405 409 bool PutByIdStatus::finalize(VM& vm) -
trunk/Source/JavaScriptCore/bytecode/PutByIdStatus.h
r267489 r273138 1 1 /* 2 * Copyright (C) 2012-20 18Apple Inc. All rights reserved.2 * Copyright (C) 2012-2021 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 118 118 const PutByIdVariant& operator[](size_t index) const { return at(index); } 119 119 120 void markIfCheap(SlotVisitor&);120 template<typename Visitor> void markIfCheap(Visitor&); 121 121 bool finalize(VM&); 122 122 -
trunk/Source/JavaScriptCore/bytecode/PutByIdVariant.cpp
r261895 r273138 1 1 /* 2 * Copyright (C) 2014-20 18Apple Inc. All rights reserved.2 * Copyright (C) 2014-2021 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 263 263 } 264 264 265 void PutByIdVariant::markIfCheap(SlotVisitor& visitor) 265 template<typename Visitor> 266 void PutByIdVariant::markIfCheap(Visitor& visitor) 266 267 { 267 268 m_oldStructure.markIfCheap(visitor); … … 269 270 m_newStructure->markIfCheap(visitor); 270 271 } 272 273 template void PutByIdVariant::markIfCheap(AbstractSlotVisitor&); 274 template void PutByIdVariant::markIfCheap(SlotVisitor&); 271 275 272 276 bool PutByIdVariant::finalize(VM& vm) -
trunk/Source/JavaScriptCore/bytecode/PutByIdVariant.h
r252763 r273138 1 1 /* 2 * Copyright (C) 2014-20 18Apple Inc. All rights reserved.2 * Copyright (C) 2014-2021 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 133 133 bool attemptToMerge(const PutByIdVariant& other); 134 134 135 void markIfCheap(SlotVisitor&);135 template<typename Visitor> void markIfCheap(Visitor&); 136 136 bool finalize(VM&); 137 137 -
trunk/Source/JavaScriptCore/bytecode/RecordedStatuses.cpp
r272830 r273138 103 103 } 104 104 105 void RecordedStatuses::visitAggregate(SlotVisitor& visitor) 105 template<typename Visitor> 106 void RecordedStatuses::visitAggregateImpl(Visitor& visitor) 106 107 { 107 108 for (auto& pair : gets) … … 115 116 } 116 117 117 void RecordedStatuses::markIfCheap(SlotVisitor& visitor) 118 DEFINE_VISIT_AGGREGATE(RecordedStatuses); 119 120 template<typename Visitor> 121 void RecordedStatuses::markIfCheap(Visitor& visitor) 118 122 { 119 123 for (auto& pair : gets) … … 130 134 pair.second->markIfCheap(visitor); 131 135 } 136 137 template void RecordedStatuses::markIfCheap(AbstractSlotVisitor&); 138 template void RecordedStatuses::markIfCheap(SlotVisitor&); 132 139 133 140 void RecordedStatuses::finalizeWithoutDeleting(VM& vm) -
trunk/Source/JavaScriptCore/bytecode/RecordedStatuses.h
r272580 r273138 1 1 /* 2 * Copyright (C) 2018-202 0Apple Inc. All rights reserved.2 * Copyright (C) 2018-2021 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 55 55 SetPrivateBrandStatus* addSetPrivateBrandStatus(const CodeOrigin&, const SetPrivateBrandStatus&); 56 56 57 void visitAggregate(SlotVisitor&);58 void markIfCheap(SlotVisitor&);57 DECLARE_VISIT_AGGREGATE; 58 template<typename Visitor> void markIfCheap(Visitor&); 59 59 60 60 void finalizeWithoutDeleting(VM&); -
trunk/Source/JavaScriptCore/bytecode/SetPrivateBrandStatus.cpp
r272580 r273138 236 236 } 237 237 238 void SetPrivateBrandStatus::visitAggregate(SlotVisitor& visitor) 238 template<typename Visitor> 239 void SetPrivateBrandStatus::visitAggregateImpl(Visitor& visitor) 239 240 { 240 241 for (SetPrivateBrandVariant& variant : m_variants) … … 242 243 } 243 244 244 void SetPrivateBrandStatus::markIfCheap(SlotVisitor& visitor) 245 DEFINE_VISIT_AGGREGATE(SetPrivateBrandStatus); 246 247 template<typename Visitor> 248 void SetPrivateBrandStatus::markIfCheap(Visitor& visitor) 245 249 { 246 250 for (SetPrivateBrandVariant& variant : m_variants) 247 251 variant.markIfCheap(visitor); 248 252 } 253 254 template void SetPrivateBrandStatus::markIfCheap(AbstractSlotVisitor&); 255 template void SetPrivateBrandStatus::markIfCheap(SlotVisitor&); 249 256 250 257 bool SetPrivateBrandStatus::finalize(VM& vm) -
trunk/Source/JavaScriptCore/bytecode/SetPrivateBrandStatus.h
r272690 r273138 84 84 void filter(const StructureSet&); 85 85 86 void visitAggregate(SlotVisitor&);87 void markIfCheap(SlotVisitor&);86 DECLARE_VISIT_AGGREGATE; 87 template<typename Visitor> void markIfCheap(Visitor&); 88 88 bool finalize(VM&); 89 89 -
trunk/Source/JavaScriptCore/bytecode/SetPrivateBrandVariant.cpp
r272612 r273138 1 1 /* 2 * Copyright (C) 2020 Apple Inc. All rights reserved.2 * Copyright (C) 2020-2021 Apple Inc. All rights reserved. 3 3 * Copyright (C) 2021 Igalia S.A. All rights reserved. 4 4 * … … 55 55 } 56 56 57 void SetPrivateBrandVariant::markIfCheap(SlotVisitor& visitor) 57 template<typename Visitor> 58 void SetPrivateBrandVariant::markIfCheap(Visitor& visitor) 58 59 { 59 60 if (m_oldStructure) … … 62 63 m_newStructure->markIfCheap(visitor); 63 64 } 65 66 template void SetPrivateBrandVariant::markIfCheap(AbstractSlotVisitor&); 67 template void SetPrivateBrandVariant::markIfCheap(SlotVisitor&); 64 68 65 69 bool SetPrivateBrandVariant::finalize(VM& vm) … … 72 76 } 73 77 74 void SetPrivateBrandVariant::visitAggregate(SlotVisitor& visitor) 78 template<typename Visitor> 79 void SetPrivateBrandVariant::visitAggregateImpl(Visitor& visitor) 75 80 { 76 81 m_identifier.visitAggregate(visitor); 77 82 } 83 84 DEFINE_VISIT_AGGREGATE(SetPrivateBrandVariant); 78 85 79 86 void SetPrivateBrandVariant::dump(PrintStream& out) const -
trunk/Source/JavaScriptCore/bytecode/SetPrivateBrandVariant.h
r272612 r273138 46 46 bool attemptToMerge(const SetPrivateBrandVariant& other); 47 47 48 void visitAggregate(SlotVisitor&);49 void markIfCheap(SlotVisitor&);48 DECLARE_VISIT_AGGREGATE; 49 template<typename Visitor> void markIfCheap(Visitor&); 50 50 bool finalize(VM&); 51 51 -
trunk/Source/JavaScriptCore/bytecode/StructureSet.cpp
r261895 r273138 1 1 /* 2 * Copyright (C) 2014-20 18Apple Inc. All rights reserved.2 * Copyright (C) 2014-2021 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 32 32 namespace JSC { 33 33 34 void StructureSet::markIfCheap(SlotVisitor& visitor) const 34 template<typename Visitor> 35 void StructureSet::markIfCheap(Visitor& visitor) const 35 36 { 36 37 for (Structure* structure : *this) 37 38 structure->markIfCheap(visitor); 38 39 } 40 41 template void StructureSet::markIfCheap(AbstractSlotVisitor&) const; 42 template void StructureSet::markIfCheap(SlotVisitor&) const; 39 43 40 44 bool StructureSet::isStillAlive(VM& vm) const -
trunk/Source/JavaScriptCore/bytecode/StructureSet.h
r243467 r273138 1 1 /* 2 * Copyright (C) 2011-20 18Apple Inc. All rights reserved.2 * Copyright (C) 2011-2021 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 55 55 } 56 56 57 void markIfCheap(SlotVisitor&) const;57 template<typename Visitor> void markIfCheap(Visitor&) const; 58 58 bool isStillAlive(VM&) const; 59 59 -
trunk/Source/JavaScriptCore/bytecode/StructureStubInfo.cpp
r272580 r273138 1 1 /* 2 * Copyright (C) 2008-202 0Apple Inc. All rights reserved.2 * Copyright (C) 2008-2021 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 297 297 } 298 298 299 void StructureStubInfo::visitAggregate(SlotVisitor& visitor) 299 template<typename Visitor> 300 void StructureStubInfo::visitAggregateImpl(Visitor& visitor) 300 301 { 301 302 { … … 322 323 return; 323 324 } 325 326 DEFINE_VISIT_AGGREGATE(StructureStubInfo); 324 327 325 328 void StructureStubInfo::visitWeakReferences(const ConcurrentJSLockerBase& locker, CodeBlock* codeBlock) … … 353 356 } 354 357 355 bool StructureStubInfo::propagateTransitions(SlotVisitor& visitor) 358 template<typename Visitor> 359 bool StructureStubInfo::propagateTransitions(Visitor& visitor) 356 360 { 357 361 switch (m_cacheType) { … … 371 375 return true; 372 376 } 377 378 template bool StructureStubInfo::propagateTransitions(AbstractSlotVisitor&); 379 template bool StructureStubInfo::propagateTransitions(SlotVisitor&); 373 380 374 381 StubInfoSummary StructureStubInfo::summary(VM& vm) const -
trunk/Source/JavaScriptCore/bytecode/StructureStubInfo.h
r272580 r273138 1 1 /* 2 * Copyright (C) 2008-202 0Apple Inc. All rights reserved.2 * Copyright (C) 2008-2021 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 94 94 void aboutToDie(); 95 95 96 void visitAggregate(SlotVisitor&);96 DECLARE_VISIT_AGGREGATE; 97 97 98 98 // Check if the stub has weak references that are dead. If it does, then it resets itself, … … 101 101 102 102 // This returns true if it has marked everything that it will ever mark. 103 bool propagateTransitions(SlotVisitor&);103 template<typename Visitor> bool propagateTransitions(Visitor&); 104 104 105 105 StubInfoSummary summary(VM&) const; -
trunk/Source/JavaScriptCore/bytecode/UnlinkedCodeBlock.cpp
r272580 r273138 1 1 /* 2 * Copyright (C) 2012-20 19Apple Inc. All Rights Reserved.2 * Copyright (C) 2012-2021 Apple Inc. All Rights Reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 76 76 } 77 77 78 void UnlinkedCodeBlock::visitChildren(JSCell* cell, SlotVisitor& visitor) 78 template<typename Visitor> 79 void UnlinkedCodeBlock::visitChildrenImpl(JSCell* cell, Visitor& visitor) 79 80 { 80 81 UnlinkedCodeBlock* thisObject = jsCast<UnlinkedCodeBlock*>(cell); … … 95 96 } 96 97 98 DEFINE_VISIT_CHILDREN(UnlinkedCodeBlock); 99 97 100 size_t UnlinkedCodeBlock::estimatedSize(JSCell* cell, VM& vm) 98 101 { -
trunk/Source/JavaScriptCore/bytecode/UnlinkedCodeBlock.h
r273135 r273138 1 1 /* 2 * Copyright (C) 2012-20 19Apple Inc. All Rights Reserved.2 * Copyright (C) 2012-2021 Apple Inc. All Rights Reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 431 431 432 432 protected: 433 static void visitChildren(JSCell*, SlotVisitor&);433 DECLARE_VISIT_CHILDREN; 434 434 static size_t estimatedSize(JSCell*, VM&); 435 435 -
trunk/Source/JavaScriptCore/bytecode/UnlinkedFunctionExecutable.cpp
r272580 r273138 1 1 /* 2 * Copyright (C) 2012-20 19Apple Inc. All Rights Reserved.2 * Copyright (C) 2012-2021 Apple Inc. All Rights Reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 147 147 } 148 148 149 void UnlinkedFunctionExecutable::visitChildren(JSCell* cell, SlotVisitor& visitor) 149 template<typename Visitor> 150 void UnlinkedFunctionExecutable::visitChildrenImpl(JSCell* cell, Visitor& visitor) 150 151 { 151 152 UnlinkedFunctionExecutable* thisObject = jsCast<UnlinkedFunctionExecutable*>(cell); … … 169 170 } 170 171 } 172 173 DEFINE_VISIT_CHILDREN(UnlinkedFunctionExecutable); 171 174 172 175 SourceCode UnlinkedFunctionExecutable::linkedSourceCode(const SourceCode& passedParentSource) const -
trunk/Source/JavaScriptCore/bytecode/UnlinkedFunctionExecutable.h
r272580 r273138 1 1 /* 2 * Copyright (C) 2012-20 19Apple Inc. All Rights Reserved.2 * Copyright (C) 2012-2021 Apple Inc. All Rights Reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 243 243 UnlinkedFunctionExecutable(Decoder&, const CachedFunctionExecutable&); 244 244 245 static void visitChildren(JSCell*, SlotVisitor&);245 DECLARE_VISIT_CHILDREN; 246 246 247 247 void decodeCachedCodeBlocks(VM&); -
trunk/Source/JavaScriptCore/debugger/DebuggerScope.cpp
r271269 r273138 1 1 /* 2 * Copyright (C) 2008-20 19Apple Inc. All rights reserved.2 * Copyright (C) 2008-2021 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 56 56 } 57 57 58 void DebuggerScope::visitChildren(JSCell* cell, SlotVisitor& visitor) 58 template<typename Visitor> 59 void DebuggerScope::visitChildrenImpl(JSCell* cell, Visitor& visitor) 59 60 { 60 61 DebuggerScope* thisObject = jsCast<DebuggerScope*>(cell); … … 65 66 visitor.append(thisObject->m_next); 66 67 } 68 69 DEFINE_VISIT_CHILDREN(DebuggerScope); 67 70 68 71 String DebuggerScope::className(const JSObject* object, VM& vm) -
trunk/Source/JavaScriptCore/debugger/DebuggerScope.h
r271269 r273138 1 1 /* 2 * Copyright (C) 2008-202 0Apple Inc. All rights reserved.2 * Copyright (C) 2008-2021 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 47 47 JS_EXPORT_PRIVATE static DebuggerScope* create(VM& vm, JSScope* scope); 48 48 49 static void visitChildren(JSCell*, SlotVisitor&);49 DECLARE_VISIT_CHILDREN; 50 50 static String className(const JSObject*, VM&); 51 51 static String toStringName(const JSObject*, JSGlobalObject*); -
trunk/Source/JavaScriptCore/dfg/DFGDesiredTransitions.cpp
r261895 r273138 1 1 /* 2 * Copyright (C) 2013-20 16Apple Inc. All rights reserved.2 * Copyright (C) 2013-2021 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 32 32 #include "DFGCommonData.h" 33 33 #include "JSCellInlines.h" 34 #include "SlotVisitorInlines.h" 34 35 35 36 namespace JSC { namespace DFG { … … 53 54 } 54 55 55 void DesiredTransition::visitChildren(SlotVisitor& visitor) 56 template<typename Visitor> 57 void DesiredTransition::visitChildren(Visitor& visitor) 56 58 { 57 59 visitor.appendUnbarriered(m_codeOriginOwner); … … 59 61 visitor.appendUnbarriered(m_newStructure); 60 62 } 63 64 template void DesiredTransition::visitChildren(AbstractSlotVisitor&); 65 template void DesiredTransition::visitChildren(SlotVisitor&); 61 66 62 67 DesiredTransitions::DesiredTransitions() … … 79 84 } 80 85 81 void DesiredTransitions::visitChildren(SlotVisitor& visitor) 86 template<typename Visitor> 87 void DesiredTransitions::visitChildren(Visitor& visitor) 82 88 { 83 89 for (unsigned i = 0; i < m_transitions.size(); i++) … … 85 91 } 86 92 93 template void DesiredTransitions::visitChildren(AbstractSlotVisitor&); 94 template void DesiredTransitions::visitChildren(SlotVisitor&); 95 87 96 } } // namespace JSC::DFG 88 97 -
trunk/Source/JavaScriptCore/dfg/DFGDesiredTransitions.h
r206525 r273138 1 1 /* 2 * Copyright (C) 2013 , 2014Apple Inc. All rights reserved.2 * Copyright (C) 2013-2021 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 34 34 class CodeBlock; 35 35 class ScriptExecutable; 36 class SlotVisitor;37 36 class Structure; 38 37 class VM; … … 47 46 48 47 void reallyAdd(VM&, CommonData*); 49 50 void visitChildren(SlotVisitor&); 48 template<typename Visitor> void visitChildren(Visitor&); 51 49 52 50 private: … … 64 62 void addLazily(CodeBlock*, CodeBlock* codeOriginOwner, Structure*, Structure*); 65 63 void reallyAdd(VM&, CommonData*); 66 void visitChildren(SlotVisitor&);64 template<typename Visitor> void visitChildren(Visitor&); 67 65 68 66 private: -
trunk/Source/JavaScriptCore/dfg/DFGDesiredWeakReferences.cpp
r261895 r273138 1 1 /* 2 * Copyright (C) 2013-20 16Apple Inc. All rights reserved.2 * Copyright (C) 2013-2021 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 88 88 } 89 89 90 void DesiredWeakReferences::visitChildren(SlotVisitor& visitor) 90 template<typename Visitor> 91 void DesiredWeakReferences::visitChildren(Visitor& visitor) 91 92 { 92 93 for (JSCell* target : m_references) … … 94 95 } 95 96 97 template void DesiredWeakReferences::visitChildren(AbstractSlotVisitor&); 98 template void DesiredWeakReferences::visitChildren(SlotVisitor&); 99 96 100 } } // namespace JSC::DFG 97 101 -
trunk/Source/JavaScriptCore/dfg/DFGDesiredWeakReferences.h
r206525 r273138 1 1 /* 2 * Copyright (C) 2013-20 15Apple Inc. All rights reserved.2 * Copyright (C) 2013-2021 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 35 35 class JSCell; 36 36 class JSValue; 37 class SlotVisitor;38 37 class VM; 39 38 … … 53 52 54 53 void reallyAdd(VM&, CommonData*); 55 56 void visitChildren(SlotVisitor&);54 55 template<typename Visitor> void visitChildren(Visitor&); 57 56 58 57 private: -
trunk/Source/JavaScriptCore/dfg/DFGGraph.cpp
r272830 r273138 52 52 #include "MaxFrameExtentForSlowPathCall.h" 53 53 #include "OperandsInlines.h" 54 #include "SlotVisitorInlines.h" 54 55 #include "Snippet.h" 55 56 #include "StackAlignment.h" … … 1449 1450 } 1450 1451 1451 void Graph::visitChildren(SlotVisitor& visitor) 1452 template<typename Visitor> 1453 ALWAYS_INLINE void Graph::visitChildrenImpl(Visitor& visitor) 1452 1454 { 1453 1455 for (FrozenValue* value : m_frozenValues) { … … 1456 1458 } 1457 1459 } 1460 1461 void Graph::visitChildren(AbstractSlotVisitor& visitor) { visitChildrenImpl(visitor); } 1462 void Graph::visitChildren(SlotVisitor& visitor) { visitChildrenImpl(visitor); } 1458 1463 1459 1464 FrozenValue* Graph::freeze(JSValue value) -
trunk/Source/JavaScriptCore/dfg/DFGGraph.h
r265685 r273138 1 1 /* 2 * Copyright (C) 2011-202 0Apple Inc. All rights reserved.2 * Copyright (C) 2011-2021 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 1001 1001 1002 1002 void registerFrozenValues(); 1003 1003 1004 void visitChildren(AbstractSlotVisitor&) final; 1004 1005 void visitChildren(SlotVisitor&) final; 1005 1006 1006 1007 void logAssertionFailure( 1007 1008 std::nullptr_t, const char* file, int line, const char* function, … … 1185 1186 1186 1187 private: 1188 template<typename Visitor> void visitChildrenImpl(Visitor&); 1189 1187 1190 bool isStringPrototypeMethodSane(JSGlobalObject*, UniquedStringImpl*); 1188 1191 -
trunk/Source/JavaScriptCore/dfg/DFGPlan.cpp
r266101 r273138 1 1 /* 2 * Copyright (C) 2013-202 0Apple Inc. All rights reserved.2 * Copyright (C) 2013-2021 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 673 673 } 674 674 675 void Plan::checkLivenessAndVisitChildren(SlotVisitor& visitor) 676 { 677 if (!isKnownToBeLiveDuringGC()) 675 template<typename Visitor> 676 void Plan::checkLivenessAndVisitChildren(Visitor& visitor) 677 { 678 if (!isKnownToBeLiveDuringGC(visitor)) 678 679 return; 679 680 … … 703 704 } 704 705 706 template void Plan::checkLivenessAndVisitChildren(AbstractSlotVisitor&); 707 template void Plan::checkLivenessAndVisitChildren(SlotVisitor&); 708 705 709 void Plan::finalizeInGC() 706 710 { … … 709 713 } 710 714 711 bool Plan::isKnownToBeLiveDuringGC() 715 template<typename Visitor> 716 bool Plan::isKnownToBeLiveDuringGC(Visitor& visitor) 717 { 718 if (m_stage == Cancelled) 719 return false; 720 if (!visitor.isMarked(m_codeBlock->ownerExecutable())) 721 return false; 722 if (!visitor.isMarked(m_codeBlock->alternative())) 723 return false; 724 if (!!m_profiledDFGCodeBlock && !visitor.isMarked(m_profiledDFGCodeBlock)) 725 return false; 726 return true; 727 } 728 729 template bool Plan::isKnownToBeLiveDuringGC(AbstractSlotVisitor&); 730 template bool Plan::isKnownToBeLiveDuringGC(SlotVisitor&); 731 732 bool Plan::isKnownToBeLiveAfterGC() 712 733 { 713 734 if (m_stage == Cancelled) -
trunk/Source/JavaScriptCore/dfg/DFGPlan.h
r254962 r273138 1 1 /* 2 * Copyright (C) 2013-202 0Apple Inc. All rights reserved.2 * Copyright (C) 2013-2021 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 45 45 46 46 class CodeBlock; 47 class SlotVisitor;48 47 49 48 namespace DFG { … … 71 70 CompilationKey key(); 72 71 73 template<typename Func> 74 void iterateCodeBlocksForGC(const Func&); 75 void checkLivenessAndVisitChildren(SlotVisitor&); 76 bool isKnownToBeLiveDuringGC(); 72 template<typename Func, typename Visitor> 73 void iterateCodeBlocksForGC(Visitor&, const Func&); 74 template<typename Visitor> void checkLivenessAndVisitChildren(Visitor&); 75 template<typename Visitor> bool isKnownToBeLiveDuringGC(Visitor&); 76 bool isKnownToBeLiveAfterGC(); 77 77 void finalizeInGC(); 78 78 void cancel(); -
trunk/Source/JavaScriptCore/dfg/DFGPlanInlines.h
r234178 r273138 1 1 /* 2 * Copyright (C) 2017-20 18Apple Inc. All rights reserved.2 * Copyright (C) 2017-2021 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 32 32 #if ENABLE(DFG_JIT) 33 33 34 template<typename Func >35 void Plan::iterateCodeBlocksForGC( const Func& func)34 template<typename Func, typename Visitor> 35 void Plan::iterateCodeBlocksForGC(Visitor& visitor, const Func& func) 36 36 { 37 if (!isKnownToBeLiveDuringGC( ))37 if (!isKnownToBeLiveDuringGC(visitor)) 38 38 return; 39 39 -
trunk/Source/JavaScriptCore/dfg/DFGSafepoint.cpp
r261755 r273138 1 1 /* 2 * Copyright (C) 2014-20 19Apple Inc. All rights reserved.2 * Copyright (C) 2014-2021 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 84 84 } 85 85 86 void Safepoint::checkLivenessAndVisitChildren(SlotVisitor& visitor) 86 template<typename Visitor> 87 void Safepoint::checkLivenessAndVisitChildren(Visitor& visitor) 87 88 { 88 89 RELEASE_ASSERT(m_didCallBegin); … … 91 92 return; // We were cancelled during a previous GC! 92 93 93 if (!isKnownToBeLiveDuringGC( ))94 if (!isKnownToBeLiveDuringGC(visitor)) 94 95 return; 95 96 … … 98 99 } 99 100 100 bool Safepoint::isKnownToBeLiveDuringGC() 101 template void Safepoint::checkLivenessAndVisitChildren(AbstractSlotVisitor&); 102 template void Safepoint::checkLivenessAndVisitChildren(SlotVisitor&); 103 104 template<typename Visitor> 105 bool Safepoint::isKnownToBeLiveDuringGC(Visitor& visitor) 101 106 { 102 107 RELEASE_ASSERT(m_didCallBegin); … … 105 110 return true; // We were cancelled during a previous GC, so let's not mess with it this time around - pretend it's live and move on. 106 111 107 return m_plan.isKnownToBeLiveDuringGC(); 112 return m_plan.isKnownToBeLiveDuringGC(visitor); 113 } 114 115 template bool Safepoint::isKnownToBeLiveDuringGC(AbstractSlotVisitor&); 116 template bool Safepoint::isKnownToBeLiveDuringGC(SlotVisitor&); 117 118 bool Safepoint::isKnownToBeLiveAfterGC() 119 { 120 RELEASE_ASSERT(m_didCallBegin); 121 122 if (m_result.m_didGetCancelled) 123 return true; // We were cancelled during a previous GC, so let's not mess with it this time around - pretend it's live and move on. 124 125 return m_plan.isKnownToBeLiveAfterGC(); 108 126 } 109 127 -
trunk/Source/JavaScriptCore/dfg/DFGSafepoint.h
r234178 r273138 1 1 /* 2 * Copyright (C) 2014 , 2016Apple Inc. All rights reserved.2 * Copyright (C) 2014-2021 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 32 32 namespace JSC { 33 33 34 class SlotVisitor;35 34 class VM; 36 35 … … 67 66 68 67 void begin(); 69 70 void checkLivenessAndVisitChildren(SlotVisitor&); 71 bool isKnownToBeLiveDuringGC(); 68 69 template<typename Visitor> void checkLivenessAndVisitChildren(Visitor&); 70 template<typename Visitor> bool isKnownToBeLiveDuringGC(Visitor&); 71 bool isKnownToBeLiveAfterGC(); 72 72 void cancel(); 73 73 -
trunk/Source/JavaScriptCore/dfg/DFGScannable.h
r206525 r273138 1 1 /* 2 * Copyright (C) 2014 Apple Inc. All rights reserved.2 * Copyright (C) 2014-2021 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 30 30 namespace JSC { 31 31 32 class AbstractSlotVisitor; 32 33 class SlotVisitor; 33 34 … … 38 39 Scannable() { } 39 40 virtual ~Scannable() { } 40 41 42 virtual void visitChildren(AbstractSlotVisitor&) = 0; 41 43 virtual void visitChildren(SlotVisitor&) = 0; 42 44 }; -
trunk/Source/JavaScriptCore/dfg/DFGWorklist.cpp
r262402 r273138 1 1 /* 2 * Copyright (C) 2013-202 0Apple Inc. All rights reserved.2 * Copyright (C) 2013-2021 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 373 373 } 374 374 375 void Worklist::visitWeakReferences(SlotVisitor& visitor) 375 template<typename Visitor> 376 void Worklist::visitWeakReferences(Visitor& visitor) 376 377 { 377 378 VM* vm = &visitor.heap()->vm(); … … 397 398 } 398 399 400 template void Worklist::visitWeakReferences(AbstractSlotVisitor&); 401 template void Worklist::visitWeakReferences(SlotVisitor&); 402 399 403 void Worklist::removeDeadPlans(VM& vm) 400 404 { … … 406 410 if (plan->vm() != &vm) 407 411 continue; 408 if (plan->isKnownToBeLive DuringGC()) {412 if (plan->isKnownToBeLiveAfterGC()) { 409 413 plan->finalizeInGC(); 410 414 continue; … … 441 445 if (safepoint->vm() != &vm) 442 446 continue; 443 if (safepoint->isKnownToBeLive DuringGC())447 if (safepoint->isKnownToBeLiveAfterGC()) 444 448 continue; 445 449 safepoint->cancel(); -
trunk/Source/JavaScriptCore/dfg/DFGWorklist.h
r254464 r273138 1 1 /* 2 * Copyright (C) 2013-202 0Apple Inc. All rights reserved.2 * Copyright (C) 2013-2021 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 34 34 #include <wtf/Lock.h> 35 35 36 namespace JSC { 37 38 class SlotVisitor; 39 40 namespace DFG { 36 namespace JSC { namespace DFG { 41 37 42 38 #if ENABLE(DFG_JIT) … … 57 53 void completeAllPlansForVM(VM&); 58 54 59 template<typename Func >60 void iterateCodeBlocksForGC(V M&, const Func&);55 template<typename Func, typename Visitor> 56 void iterateCodeBlocksForGC(Visitor&, VM&, const Func&); 61 57 62 58 void waitUntilAllPlansForVMAreReady(VM&); … … 74 70 75 71 // Only called on the main thread after suspending all threads. 76 void visitWeakReferences(SlotVisitor&);72 template<typename Visitor> void visitWeakReferences(Visitor&); 77 73 void removeDeadPlans(VM&); 78 74 … … 144 140 void completeAllPlansForVM(VM&); 145 141 146 template<typename Func >147 void iterateCodeBlocksForGC(V M&, const Func&);142 template<typename Func, typename Visitor> 143 void iterateCodeBlocksForGC(Visitor&, VM&, const Func&); 148 144 149 145 } } // namespace JSC::DFG -
trunk/Source/JavaScriptCore/dfg/DFGWorklistInlines.h
r234178 r273138 1 1 /* 2 * Copyright (C) 2017-20 18Apple Inc. All rights reserved.2 * Copyright (C) 2017-2021 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 33 33 #if ENABLE(DFG_JIT) 34 34 35 template<typename Func >36 void iterateCodeBlocksForGC(V M& vm, const Func& func)35 template<typename Func, typename Visitor> 36 void iterateCodeBlocksForGC(Visitor& visitor, VM& vm, const Func& func) 37 37 { 38 38 for (unsigned i = DFG::numberOfWorklists(); i--;) { 39 39 if (DFG::Worklist* worklist = DFG::existingWorklistForIndexOrNull(i)) 40 worklist->iterateCodeBlocksForGC(v m, func);40 worklist->iterateCodeBlocksForGC(visitor, vm, func); 41 41 } 42 42 } 43 43 44 template<typename Func >45 void Worklist::iterateCodeBlocksForGC(V M& vm, const Func& func)44 template<typename Func, typename Visitor> 45 void Worklist::iterateCodeBlocksForGC(Visitor& visitor, VM& vm, const Func& func) 46 46 { 47 47 LockHolder locker(*m_lock); … … 50 50 if (plan->vm() != &vm) 51 51 continue; 52 plan->iterateCodeBlocksForGC( func);52 plan->iterateCodeBlocksForGC(visitor, func); 53 53 } 54 54 } … … 56 56 #else // ENABLE(DFG_JIT) 57 57 58 template<typename Func >59 void iterateCodeBlocksForGC(V M&, const Func&)58 template<typename Func, typename Visitor> 59 void iterateCodeBlocksForGC(Visitor&, VM&, const Func&) 60 60 { 61 61 } -
trunk/Source/JavaScriptCore/heap/HandleSet.cpp
r261895 r273138 1 1 /* 2 * Copyright (C) 2011-20 19Apple Inc. All rights reserved.2 * Copyright (C) 2011-2021 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 57 57 } 58 58 59 void HandleSet::visitStrongHandles(SlotVisitor& visitor) 59 template<typename Visitor> 60 void HandleSet::visitStrongHandles(Visitor& visitor) 60 61 { 61 62 Node* end = m_strongList.end(); … … 67 68 } 68 69 } 70 71 template void HandleSet::visitStrongHandles(AbstractSlotVisitor&); 72 template void HandleSet::visitStrongHandles(SlotVisitor&); 69 73 70 74 void HandleSet::writeBarrier(HandleSlot slot, const JSValue& value) -
trunk/Source/JavaScriptCore/heap/HandleSet.h
r261464 r273138 1 1 /* 2 * Copyright (C) 2011-20 19Apple Inc. All rights reserved.2 * Copyright (C) 2011-2021 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 39 39 class VM; 40 40 class JSValue; 41 class SlotVisitor;42 41 43 42 class HandleNode { … … 74 73 void deallocate(HandleSlot); 75 74 76 void visitStrongHandles(SlotVisitor&);75 template<typename Visitor> void visitStrongHandles(Visitor&); 77 76 78 77 JS_EXPORT_PRIVATE void writeBarrier(HandleSlot, const JSValue&); -
trunk/Source/JavaScriptCore/heap/Heap.cpp
r272830 r273138 73 73 #include "TypeProfilerLog.h" 74 74 #include "VM.h" 75 #include "VerifierSlotVisitorInlines.h" 75 76 #include "WeakMapImplInlines.h" 76 77 #include "WeakSetInlines.h" … … 644 645 } 645 646 646 template<typename Func >647 void Heap::iterateExecutingAndCompilingCodeBlocks( const Func& func)647 template<typename Func, typename Visitor> 648 void Heap::iterateExecutingAndCompilingCodeBlocks(Visitor& visitor, const Func& func) 648 649 { 649 650 m_codeBlocks->iterateCurrentlyExecuting(func); 650 651 if (Options::useJIT()) 651 DFG::iterateCodeBlocksForGC( m_vm, func);652 } 653 654 template<typename Func >655 void Heap::iterateExecutingAndCompilingCodeBlocksWithoutHoldingLocks( const Func& func)652 DFG::iterateCodeBlocksForGC(visitor, m_vm, func); 653 } 654 655 template<typename Func, typename Visitor> 656 void Heap::iterateExecutingAndCompilingCodeBlocksWithoutHoldingLocks(Visitor& visitor, const Func& func) 656 657 { 657 658 Vector<CodeBlock*, 256> codeBlocks; 658 iterateExecutingAndCompilingCodeBlocks( 659 iterateExecutingAndCompilingCodeBlocks(visitor, 659 660 [&] (CodeBlock* codeBlock) { 660 661 codeBlocks.append(codeBlock); … … 732 733 DFG::existingWorklistForIndex(i).removeDeadPlans(m_vm); 733 734 #endif 734 }735 736 bool Heap::isAnalyzingHeap() const737 {738 HeapProfiler* heapProfiler = m_vm.heapProfiler();739 if (UNLIKELY(heapProfiler))740 return heapProfiler->activeHeapAnalyzer();741 return false;742 735 } 743 736 … … 1486 1479 m_helperClient.finish(); 1487 1480 1488 iterateExecutingAndCompilingCodeBlocks( 1481 ASSERT(m_mutatorMarkStack->isEmpty()); 1482 ASSERT(m_raceMarkStack->isEmpty()); 1483 1484 SlotVisitor& visitor = *m_collectorSlotVisitor; 1485 iterateExecutingAndCompilingCodeBlocks(visitor, 1489 1486 [&] (CodeBlock* codeBlock) { 1490 1487 writeBarrier(codeBlock); 1491 1488 }); 1492 1489 1493 1490 updateObjectCounts(); 1494 1491 endMarking(); 1492 1493 if (UNLIKELY(Options::verifyGC())) 1494 verifyGC(); 1495 1495 1496 1496 if (UNLIKELY(m_verifier)) { … … 2171 2171 void Heap::willStartCollection() 2172 2172 { 2173 if (UNLIKELY(Options::verifyGC())) { 2174 m_verifierSlotVisitor = makeUnique<VerifierSlotVisitor>(*this); 2175 ASSERT(!m_isMarkingForGCVerifier); 2176 } 2177 2173 2178 dataLogIf(Options::logGC(), "=> "); 2174 2179 … … 2698 2703 } 2699 2704 2705 // The following are pulled out of the body of Heap::addCoreConstraints() only 2706 // because the WinCairo port is not able to handle #if's inside the body of the 2707 // lambda passed into the MAKE_MARKING_CONSTRAINT_EXECUTOR_PAIR macro. This works 2708 // around that issue. 2709 2710 #if JSC_OBJC_API_ENABLED 2711 constexpr bool objcAPIEnabled = true; 2712 #else 2713 constexpr bool objcAPIEnabled = false; 2714 static UNUSED_FUNCTION void scanExternalRememberedSet(VM&, AbstractSlotVisitor&) { } 2715 #endif 2716 2717 #if ENABLE(SAMPLING_PROFILER) 2718 constexpr bool samplingProfilerSupported = true; 2719 template<typename Visitor> 2720 static ALWAYS_INLINE void visitSamplingProfiler(VM& vm, Visitor& visitor) 2721 { 2722 SamplingProfiler* samplingProfiler = vm.samplingProfiler(); 2723 if (UNLIKELY(samplingProfiler)) { 2724 auto locker = holdLock(samplingProfiler->getLock()); 2725 samplingProfiler->processUnverifiedStackTraces(locker); 2726 samplingProfiler->visit(visitor); 2727 if (Options::logGC() == GCLogging::Verbose) 2728 dataLog("Sampling Profiler data:\n", visitor); 2729 } 2730 }; 2731 #else 2732 constexpr bool samplingProfilerSupported = false; 2733 static UNUSED_FUNCTION void visitSamplingProfiler(VM&, AbstractSlotVisitor&) { }; 2734 #endif 2735 2700 2736 void Heap::addCoreConstraints() 2701 2737 { 2702 2738 m_constraintSet->add( 2703 2739 "Cs", "Conservative Scan", 2704 [this, lastVersion = static_cast<uint64_t>(0)] (SlotVisitor& visitor) mutable {2740 MAKE_MARKING_CONSTRAINT_EXECUTOR_PAIR(([this, lastVersion = static_cast<uint64_t>(0)] (auto& visitor) mutable { 2705 2741 bool shouldNotProduceWork = lastVersion == m_phaseVersion; 2706 if (shouldNotProduceWork) 2742 2743 // For the GC Verfier, we would like to use the identical set of conservative roots 2744 // as the real GC. Otherwise, the GC verifier may report false negatives due to 2745 // variations in stack values. For this same reason, we will skip this constraint 2746 // when we're running the GC verification in the End phase. 2747 if (shouldNotProduceWork || m_isMarkingForGCVerifier) 2707 2748 return; 2708 2749 … … 2721 2762 SetRootMarkReasonScope rootScope(visitor, RootMarkReason::ConservativeScan); 2722 2763 visitor.append(conservativeRoots); 2764 if (UNLIKELY(m_verifierSlotVisitor)) 2765 m_verifierSlotVisitor->append(conservativeRoots); 2723 2766 } 2724 2767 if (Options::useJIT()) { … … 2726 2769 SetRootMarkReasonScope rootScope(visitor, RootMarkReason::JITStubRoutines); 2727 2770 m_jitStubRoutines->traceMarkedStubRoutines(visitor); 2771 if (UNLIKELY(m_verifierSlotVisitor)) { 2772 // It's important to cast m_verifierSlotVisitor to an AbstractSlotVisitor here 2773 // so that we'll call the AbstractSlotVisitor version of traceMarkedStubRoutines(). 2774 AbstractSlotVisitor& visitor = *m_verifierSlotVisitor; 2775 m_jitStubRoutines->traceMarkedStubRoutines(visitor); 2776 } 2728 2777 } 2729 2778 2730 2779 lastVersion = m_phaseVersion; 2731 } ,2780 })), 2732 2781 ConstraintVolatility::GreyedByExecution); 2733 2782 2734 2783 m_constraintSet->add( 2735 2784 "Msr", "Misc Small Roots", 2736 [this] (SlotVisitor& visitor) { 2737 2738 #if JSC_OBJC_API_ENABLED 2739 scanExternalRememberedSet(m_vm, visitor); 2740 #endif 2785 MAKE_MARKING_CONSTRAINT_EXECUTOR_PAIR(([this] (auto& visitor) { 2786 if constexpr (objcAPIEnabled) 2787 scanExternalRememberedSet(m_vm, visitor); 2788 2741 2789 if (m_vm.smallStrings.needsToBeVisited(*m_collectionScope)) { 2742 2790 SetRootMarkReasonScope rootScope(visitor, RootMarkReason::StrongReferences); … … 2764 2812 visitor.appendUnbarriered(m_vm.lastException()); 2765 2813 } 2766 } ,2814 })), 2767 2815 ConstraintVolatility::GreyedByExecution); 2768 2816 2769 2817 m_constraintSet->add( 2770 2818 "Sh", "Strong Handles", 2771 [this] (SlotVisitor& visitor) {2819 MAKE_MARKING_CONSTRAINT_EXECUTOR_PAIR(([this] (auto& visitor) { 2772 2820 SetRootMarkReasonScope rootScope(visitor, RootMarkReason::StrongHandles); 2773 2821 m_handleSet.visitStrongHandles(visitor); 2774 } ,2822 })), 2775 2823 ConstraintVolatility::GreyedByExecution); 2776 2824 2777 2825 m_constraintSet->add( 2778 2826 "D", "Debugger", 2779 [this] (SlotVisitor& visitor) {2827 MAKE_MARKING_CONSTRAINT_EXECUTOR_PAIR(([this] (auto& visitor) { 2780 2828 SetRootMarkReasonScope rootScope(visitor, RootMarkReason::Debugger); 2781 2829 2782 #if ENABLE(SAMPLING_PROFILER) 2783 if (SamplingProfiler* samplingProfiler = m_vm.samplingProfiler()) { 2784 auto locker = holdLock(samplingProfiler->getLock()); 2785 samplingProfiler->processUnverifiedStackTraces(locker); 2786 samplingProfiler->visit(visitor); 2787 if (Options::logGC() == GCLogging::Verbose) 2788 dataLog("Sampling Profiler data:\n", visitor); 2789 } 2790 #endif // ENABLE(SAMPLING_PROFILER) 2830 if constexpr (samplingProfilerSupported) 2831 visitSamplingProfiler(m_vm, visitor); 2791 2832 2792 2833 if (m_vm.typeProfiler()) … … 2795 2836 if (auto* shadowChicken = m_vm.shadowChicken()) 2796 2837 shadowChicken->visitChildren(visitor); 2797 } ,2838 })), 2798 2839 ConstraintVolatility::GreyedByExecution); 2799 2840 2800 2841 m_constraintSet->add( 2801 2842 "Ws", "Weak Sets", 2802 [this] (SlotVisitor& visitor) {2843 MAKE_MARKING_CONSTRAINT_EXECUTOR_PAIR(([this] (auto& visitor) { 2803 2844 SetRootMarkReasonScope rootScope(visitor, RootMarkReason::WeakSets); 2804 2845 m_objectSpace.visitWeakSets(visitor); 2805 } ,2846 })), 2806 2847 ConstraintVolatility::GreyedByMarking); 2807 2848 2808 2849 m_constraintSet->add( 2809 2850 "O", "Output", 2810 [] (SlotVisitor& visitor) { 2851 MAKE_MARKING_CONSTRAINT_EXECUTOR_PAIR(([] (auto& visitor) { 2852 using Visitor = decltype(visitor); 2811 2853 VM& vm = visitor.vm(); 2812 2854 2813 auto callOutputConstraint = [] (SlotVisitor& visitor, HeapCell* heapCell, HeapCell::Kind) { 2814 SetRootMarkReasonScope rootScope(visitor, RootMarkReason::Output); 2815 VM& vm = visitor.vm(); 2855 // The `visitor2` argument is strangely named because the WinCairo port 2856 // gets confused and thinks we're trying to capture the outer visitor 2857 // arg here. Giving it a unique name works around this issue. 2858 auto callOutputConstraint = [] (Visitor& visitor2, HeapCell* heapCell, HeapCell::Kind) { 2859 SetRootMarkReasonScope rootScope(visitor2, RootMarkReason::Output); 2860 VM& vm = visitor2.vm(); 2816 2861 JSCell* cell = static_cast<JSCell*>(heapCell); 2817 cell->methodTable(vm)->visitOutputConstraints(cell, visitor );2862 cell->methodTable(vm)->visitOutputConstraints(cell, visitor2); 2818 2863 }; 2819 2864 2820 2865 auto add = [&] (auto& set) { 2821 visitor.addParallelConstraintTask(set.forEachMarkedCellInParallel(callOutputConstraint)); 2866 RefPtr<SharedTask<void(Visitor&)>> task = set.template forEachMarkedCellInParallel<Visitor>(callOutputConstraint); 2867 visitor.addParallelConstraintTask(task); 2822 2868 }; 2823 2869 … … 2825 2871 if (vm.m_weakMapSpace) 2826 2872 add(*vm.m_weakMapSpace); 2827 } ,2873 })), 2828 2874 ConstraintVolatility::GreyedByMarking, 2829 2875 ConstraintParallelism::Parallel); … … 2833 2879 m_constraintSet->add( 2834 2880 "Dw", "DFG Worklists", 2835 [this] (SlotVisitor& visitor) {2881 MAKE_MARKING_CONSTRAINT_EXECUTOR_PAIR(([this] (auto& visitor) { 2836 2882 SetRootMarkReasonScope rootScope(visitor, RootMarkReason::DFGWorkLists); 2837 2883 … … 2841 2887 // FIXME: This is almost certainly unnecessary. 2842 2888 // https://bugs.webkit.org/show_bug.cgi?id=166829 2843 DFG::iterateCodeBlocksForGC( 2889 DFG::iterateCodeBlocksForGC(visitor, 2844 2890 m_vm, 2845 2891 [&] (CodeBlock* codeBlock) { … … 2849 2895 if (Options::logGC() == GCLogging::Verbose) 2850 2896 dataLog("DFG Worklists:\n", visitor); 2851 } ,2897 })), 2852 2898 ConstraintVolatility::GreyedByMarking); 2853 2899 } … … 2856 2902 m_constraintSet->add( 2857 2903 "Cb", "CodeBlocks", 2858 [this] (SlotVisitor& visitor) {2904 MAKE_MARKING_CONSTRAINT_EXECUTOR_PAIR(([this] (auto& visitor) { 2859 2905 SetRootMarkReasonScope rootScope(visitor, RootMarkReason::CodeBlocks); 2860 iterateExecutingAndCompilingCodeBlocksWithoutHoldingLocks( 2906 iterateExecutingAndCompilingCodeBlocksWithoutHoldingLocks(visitor, 2861 2907 [&] (CodeBlock* codeBlock) { 2862 2908 // Visit the CodeBlock as a constraint only if it's black. 2863 if ( isMarked(codeBlock)2909 if (visitor.isMarked(codeBlock) 2864 2910 && codeBlock->cellState() == CellState::PossiblyBlack) 2865 2911 visitor.visitAsConstraint(codeBlock); 2866 2912 }); 2867 } ,2913 })), 2868 2914 ConstraintVolatility::SeldomGreyed); 2869 2915 … … 3024 3070 } 3025 3071 3072 void Heap::verifyGC() 3073 { 3074 RELEASE_ASSERT(m_verifierSlotVisitor); 3075 RELEASE_ASSERT(!m_isMarkingForGCVerifier); 3076 m_isMarkingForGCVerifier = true; 3077 3078 VerifierSlotVisitor& visitor = *m_verifierSlotVisitor; 3079 3080 do { 3081 while (!visitor.isEmpty()) 3082 visitor.drain(); 3083 m_constraintSet->executeAllSynchronously(visitor); 3084 visitor.executeConstraintTasks(); 3085 } while (!visitor.isEmpty()); 3086 3087 m_isMarkingForGCVerifier = false; 3088 3089 visitor.forEachLiveCell([&] (HeapCell* cell) { 3090 if (Heap::isMarked(cell)) 3091 return; 3092 3093 dataLogLn("\n" "GC Verifier: ERROR cell ", RawPointer(cell), " was not marked"); 3094 if (UNLIKELY(Options::verboseVerifyGC())) 3095 visitor.dumpMarkerData(cell); 3096 RELEASE_ASSERT(this->isMarked(cell)); 3097 }); 3098 3099 m_verifierSlotVisitor = nullptr; 3100 } 3101 3026 3102 } // namespace JSC -
trunk/Source/JavaScriptCore/heap/Heap.h
r262562 r273138 2 2 * Copyright (C) 1999-2000 Harri Porten (porten@kde.org) 3 3 * Copyright (C) 2001 Peter Kelly (pmk@post.com) 4 * Copyright (C) 2003-202 0Apple Inc. All rights reserved.4 * Copyright (C) 2003-2021 Apple Inc. All rights reserved. 5 5 * 6 6 * This library is free software; you can redistribute it and/or … … 87 87 class SweepingScope; 88 88 class VM; 89 class VerifierSlotVisitor; 89 90 class WeakGCMapBase; 90 91 struct CurrentThreadState; … … 184 185 185 186 bool isShuttingDown() const { return m_isShuttingDown; } 186 187 JS_EXPORT_PRIVATE bool isAnalyzingHeap() const;188 187 189 188 JS_EXPORT_PRIVATE void sweepSynchronously(); … … 386 385 JS_EXPORT_PRIVATE void addMarkingConstraint(std::unique_ptr<MarkingConstraint>); 387 386 388 size_t numOpaqueRoots() const { return m_opaqueRoots.size(); }389 390 387 HeapVerifier* verifier() const { return m_verifier.get(); } 391 388 … … 407 404 408 405 HashMap<JSImmutableButterfly*, JSString*> immutableButterflyToStringCache; 406 407 bool isMarkingForGCVerifier() const { return m_isMarkingForGCVerifier; } 409 408 410 409 private: … … 576 575 bool overCriticalMemoryThreshold(MemoryThresholdCallType memoryThresholdCallType = MemoryThresholdCallType::Cached); 577 576 578 template<typename Func >579 void iterateExecutingAndCompilingCodeBlocks( const Func&);580 581 template<typename Func >582 void iterateExecutingAndCompilingCodeBlocksWithoutHoldingLocks( const Func&);577 template<typename Func, typename Visitor> 578 void iterateExecutingAndCompilingCodeBlocks(Visitor&, const Func&); 579 580 template<typename Func, typename Visitor> 581 void iterateExecutingAndCompilingCodeBlocksWithoutHoldingLocks(Visitor&, const Func&); 583 582 584 583 void assertMarkStacksEmpty(); … … 591 590 static bool shouldSweepSynchronously(); 592 591 592 void verifyGC(); 593 593 594 const HeapType m_heapType; 594 595 MutatorState m_mutatorState { MutatorState::Running }; … … 637 638 std::unique_ptr<MarkStackArray> m_raceMarkStack; 638 639 std::unique_ptr<MarkingConstraintSet> m_constraintSet; 640 std::unique_ptr<VerifierSlotVisitor> m_verifierSlotVisitor; 639 641 640 642 // We pool the slot visitors used by parallel marking threads. It's useful to be able to … … 655 657 bool m_isShuttingDown { false }; 656 658 bool m_mutatorShouldBeFenced { Options::forceFencedBarrier() }; 659 bool m_isMarkingForGCVerifier { false }; 657 660 658 661 unsigned m_barrierThreshold { Options::forceFencedBarrier() ? tautologicalThreshold : blackThreshold }; -
trunk/Source/JavaScriptCore/heap/HeapInlines.h
r272830 r273138 70 70 ALWAYS_INLINE bool Heap::isMarked(const void* rawCell) 71 71 { 72 ASSERT(!m_isMarkingForGCVerifier); 72 73 HeapCell* cell = bitwise_cast<HeapCell*>(rawCell); 73 74 if (cell->isPreciseAllocation()) -
trunk/Source/JavaScriptCore/heap/HeapProfiler.cpp
r261755 r273138 1 1 /* 2 * Copyright (C) 2016 Apple Inc. All rights reserved.2 * Copyright (C) 2016-2021 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 61 61 ASSERT(!!m_activeAnalyzer != !!analyzer); 62 62 m_activeAnalyzer = analyzer; 63 m_vm.setActiveHeapAnalyzer(analyzer); 63 64 } 64 65 -
trunk/Source/JavaScriptCore/heap/IsoCellSet.h
r254023 r273138 1 1 /* 2 * Copyright (C) 2017 Apple Inc. All rights reserved.2 * Copyright (C) 2017-2021 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 59 59 void forEachMarkedCell(const Func&); 60 60 61 template<typename Func>62 Ref<SharedTask<void( SlotVisitor&)>> forEachMarkedCellInParallel(const Func&);61 template<typename Visitor, typename Func> 62 Ref<SharedTask<void(Visitor&)>> forEachMarkedCellInParallel(const Func&); 63 63 64 64 template<typename Func> -
trunk/Source/JavaScriptCore/heap/IsoCellSetInlines.h
r261569 r273138 1 1 /* 2 * Copyright (C) 2017 Apple Inc. All rights reserved.2 * Copyright (C) 2017-2021 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 92 92 } 93 93 94 template<typename Func>95 Ref<SharedTask<void( SlotVisitor&)>> IsoCellSet::forEachMarkedCellInParallel(const Func& func)94 template<typename Visitor, typename Func> 95 Ref<SharedTask<void(Visitor&)>> IsoCellSet::forEachMarkedCellInParallel(const Func& func) 96 96 { 97 class Task final : public SharedTask<void( SlotVisitor&)> {97 class Task final : public SharedTask<void(Visitor&)> { 98 98 public: 99 99 Task(IsoCellSet& set, const Func& func) … … 104 104 } 105 105 106 void run( SlotVisitor& visitor) final106 void run(Visitor& visitor) final 107 107 { 108 108 while (MarkedBlock::Handle* handle = m_blockSource->run()) { -
trunk/Source/JavaScriptCore/heap/JITStubRoutineSet.cpp
r261755 r273138 1 1 /* 2 * Copyright (C) 2012 Apple Inc. All rights reserved.2 * Copyright (C) 2012-2021 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 129 129 } 130 130 131 void JITStubRoutineSet::traceMarkedStubRoutines(SlotVisitor& visitor) 131 template<typename Visitor> 132 void JITStubRoutineSet::traceMarkedStubRoutines(Visitor& visitor) 132 133 { 133 134 for (auto& entry : m_routines) { … … 140 141 } 141 142 143 template void JITStubRoutineSet::traceMarkedStubRoutines(AbstractSlotVisitor&); 144 template void JITStubRoutineSet::traceMarkedStubRoutines(SlotVisitor&); 145 142 146 } // namespace JSC 143 147 -
trunk/Source/JavaScriptCore/heap/JITStubRoutineSet.h
r258123 r273138 1 1 /* 2 * Copyright (C) 2012-20 18Apple Inc. All rights reserved.2 * Copyright (C) 2012-2021 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 37 37 38 38 class GCAwareJITStubRoutine; 39 class SlotVisitor;40 39 41 40 #if ENABLE(JIT) … … 64 63 65 64 void deleteUnmarkedJettisonedStubRoutines(); 66 67 void traceMarkedStubRoutines(SlotVisitor&);65 66 template<typename Visitor> void traceMarkedStubRoutines(Visitor&); 68 67 69 68 private: … … 93 92 void prepareForConservativeScan() { } 94 93 void deleteUnmarkedJettisonedStubRoutines() { } 95 void traceMarkedStubRoutines(SlotVisitor&) { }94 template<typename Visitor> void traceMarkedStubRoutines(Visitor&) { } 96 95 }; 97 96 -
trunk/Source/JavaScriptCore/heap/MarkStackMergingConstraint.cpp
r254714 r273138 1 1 /* 2 * Copyright (C) 2017 Apple Inc. All rights reserved.2 * Copyright (C) 2017-2021 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 47 47 } 48 48 49 void MarkStackMergingConstraint::prepareToExecuteImpl(const AbstractLocker&, SlotVisitor& visitor)49 void MarkStackMergingConstraint::prepareToExecuteImpl(const AbstractLocker&, AbstractSlotVisitor& visitor) 50 50 { 51 51 // Logging the work here ensures that the constraint solver knows that it doesn't need to produce … … 57 57 } 58 58 59 void MarkStackMergingConstraint::executeImpl(SlotVisitor& visitor) 59 template<typename Visitor> 60 void MarkStackMergingConstraint::executeImplImpl(Visitor& visitor) 60 61 { 62 // We want to skip this constraint for the GC verifier because: 63 // 1. There should be no mutator marking action between the End phase and verifyGC(). 64 // Hence, we can ignore these stacks. 65 // 2. The End phase explictly calls iterateExecutingAndCompilingCodeBlocks() 66 // to add executing CodeBlocks to m_heap.m_mutatorMarkStack. We want to 67 // leave those unperturbed. 68 if (m_heap.m_isMarkingForGCVerifier) 69 return; 70 61 71 m_heap.m_mutatorMarkStack->transferTo(visitor.mutatorMarkStack()); 62 72 m_heap.m_raceMarkStack->transferTo(visitor.mutatorMarkStack()); 63 73 } 64 74 75 void MarkStackMergingConstraint::executeImpl(AbstractSlotVisitor& visitor) { executeImplImpl(visitor); } 76 void MarkStackMergingConstraint::executeImpl(SlotVisitor& visitor) { executeImplImpl(visitor); } 77 65 78 } // namespace JSC 66 79 -
trunk/Source/JavaScriptCore/heap/MarkStackMergingConstraint.h
r261567 r273138 31 31 32 32 class Heap; 33 class AbstractSlotVisitor; 33 34 class SlotVisitor; 34 35 … … 41 42 42 43 private: 43 void prepareToExecuteImpl(const AbstractLocker& constraintSolvingLocker, SlotVisitor&) final; 44 void prepareToExecuteImpl(const AbstractLocker& constraintSolvingLocker, AbstractSlotVisitor&) final; 45 template<typename Visitor> ALWAYS_INLINE void executeImplImpl(Visitor&); 46 void executeImpl(AbstractSlotVisitor&) final; 44 47 void executeImpl(SlotVisitor&) final; 45 48 -
trunk/Source/JavaScriptCore/heap/MarkedBlock.h
r272825 r273138 201 201 void* start() const { return &m_block->atoms()[0]; } 202 202 void* end() const { return &m_block->atoms()[m_endAtom]; } 203 void* atomAt(size_t i) const { return &m_block->atoms()[i]; } 203 204 bool contains(void* p) const { return start() <= p && p < end(); } 204 205 … … 296 297 Bitmap<atomsPerBlock> m_marks; 297 298 Bitmap<atomsPerBlock> m_newlyAllocated; 299 void* m_verifierMemo { nullptr }; 298 300 }; 299 301 300 private: 302 private: 301 303 Footer& footer(); 302 304 const Footer& footer() const; … … 385 387 } 386 388 389 void setVerifierMemo(void*); 390 template<typename T> T verifierMemo() const; 391 387 392 static constexpr size_t offsetOfFooter = endAtom * atomSize; 393 static_assert(offsetOfFooter + sizeof(Footer) <= blockSize); 388 394 389 395 private: … … 659 665 if (UNLIKELY(!biasedMarkCount)) 660 666 noteMarkedSlow(); 667 } 668 669 inline void MarkedBlock::setVerifierMemo(void* p) 670 { 671 footer().m_verifierMemo = p; 672 } 673 674 template<typename T> 675 T MarkedBlock::verifierMemo() const 676 { 677 return bitwise_cast<T>(footer().m_verifierMemo); 661 678 } 662 679 -
trunk/Source/JavaScriptCore/heap/MarkedSpace.cpp
r262786 r273138 273 273 } 274 274 275 void MarkedSpace::visitWeakSets(SlotVisitor& visitor) 275 template<typename Visitor> 276 void MarkedSpace::visitWeakSets(Visitor& visitor) 276 277 { 277 278 auto visit = [&] (WeakSet* weakSet) { … … 284 285 m_activeWeakSets.forEach(visit); 285 286 } 287 288 template void MarkedSpace::visitWeakSets(AbstractSlotVisitor&); 289 template void MarkedSpace::visitWeakSets(SlotVisitor&); 286 290 287 291 void MarkedSpace::reapWeakSets() -
trunk/Source/JavaScriptCore/heap/MarkedSpace.h
r262786 r273138 2 2 * Copyright (C) 1999-2000 Harri Porten (porten@kde.org) 3 3 * Copyright (C) 2001 Peter Kelly (pmk@post.com) 4 * Copyright (C) 2003-20 18Apple Inc. All rights reserved.4 * Copyright (C) 2003-2021 Apple Inc. All rights reserved. 5 5 * 6 6 * This library is free software; you can redistribute it and/or … … 106 106 void prepareForAllocation(); 107 107 108 void visitWeakSets(SlotVisitor&);108 template<typename Visitor> void visitWeakSets(Visitor&); 109 109 void reapWeakSets(); 110 110 -
trunk/Source/JavaScriptCore/heap/MarkingConstraint.cpp
r254714 r273138 1 1 /* 2 * Copyright (C) 2017 Apple Inc. All rights reserved.2 * Copyright (C) 2017-2021 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 54 54 void MarkingConstraint::execute(SlotVisitor& visitor) 55 55 { 56 ASSERT(!visitor.heap()->isMarkingForGCVerifier()); 56 57 VisitCounter visitCounter(visitor); 57 58 executeImpl(visitor); … … 59 60 if (verboseMarkingConstraint && visitCounter.visitCount()) 60 61 dataLog("(", abbreviatedName(), " visited ", visitCounter.visitCount(), " in execute)"); 62 } 63 64 void MarkingConstraint::executeSynchronously(AbstractSlotVisitor& visitor) 65 { 66 prepareToExecuteImpl(NoLockingNecessary, visitor); 67 executeImpl(visitor); 61 68 } 62 69 … … 73 80 void MarkingConstraint::prepareToExecute(const AbstractLocker& constraintSolvingLocker, SlotVisitor& visitor) 74 81 { 82 ASSERT(!visitor.heap()->isMarkingForGCVerifier()); 75 83 dataLogIf(Options::logGC(), abbreviatedName()); 76 84 VisitCounter visitCounter(visitor); … … 83 91 void MarkingConstraint::doParallelWork(SlotVisitor& visitor, SharedTask<void(SlotVisitor&)>& task) 84 92 { 93 ASSERT(!visitor.heap()->isMarkingForGCVerifier()); 85 94 VisitCounter visitCounter(visitor); 86 95 task.run(visitor); … … 93 102 } 94 103 95 void MarkingConstraint::prepareToExecuteImpl(const AbstractLocker&, SlotVisitor&)104 void MarkingConstraint::prepareToExecuteImpl(const AbstractLocker&, AbstractSlotVisitor&) 96 105 { 97 106 } -
trunk/Source/JavaScriptCore/heap/MarkingConstraint.h
r240216 r273138 1 1 /* 2 * Copyright (C) 2017 Apple Inc. All rights reserved.2 * Copyright (C) 2017-2021 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 39 39 40 40 class MarkingConstraintSet; 41 class AbstractSlotVisitor; 41 42 class SlotVisitor; 42 43 … … 61 62 size_t lastVisitCount() const { return m_lastVisitCount; } 62 63 64 // The following functions are only used by the real GC via the MarkingConstraintSolver. 65 // Hence, we only need the SlotVisitor version. 63 66 void execute(SlotVisitor&); 67 68 JS_EXPORT_PRIVATE virtual double quickWorkEstimate(SlotVisitor&); 64 69 65 JS_EXPORT_PRIVATE virtual double quickWorkEstimate(SlotVisitor& visitor); 66 67 double workEstimate(SlotVisitor& visitor); 70 double workEstimate(SlotVisitor&); 68 71 69 72 void prepareToExecute(const AbstractLocker& constraintSolvingLocker, SlotVisitor&); … … 77 80 78 81 protected: 82 virtual void executeImpl(AbstractSlotVisitor&) = 0; 79 83 virtual void executeImpl(SlotVisitor&) = 0; 80 JS_EXPORT_PRIVATE virtual void prepareToExecuteImpl(const AbstractLocker& constraintSolvingLocker, SlotVisitor&); 81 84 JS_EXPORT_PRIVATE virtual void prepareToExecuteImpl(const AbstractLocker& constraintSolvingLocker, AbstractSlotVisitor&); 85 86 // This function is only used by the verifier GC via Heap::verifyGC(). 87 // Hence, we only need the AbstractSlotVisitor version. 88 void executeSynchronously(AbstractSlotVisitor&); 89 82 90 private: 83 91 friend class MarkingConstraintSet; // So it can set m_index. -
trunk/Source/JavaScriptCore/heap/MarkingConstraintSet.cpp
r261755 r273138 1 1 /* 2 * Copyright (C) 2017 Apple Inc. All rights reserved.2 * Copyright (C) 2017-2021 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 64 64 } 65 65 66 void MarkingConstraintSet::add(CString abbreviatedName, CString name, ::Function<void(SlotVisitor&)> function, ConstraintVolatility volatility, ConstraintConcurrency concurrency, ConstraintParallelism parallelism)66 void MarkingConstraintSet::add(CString abbreviatedName, CString name, MarkingConstraintExecutorPair&& executors, ConstraintVolatility volatility, ConstraintConcurrency concurrency, ConstraintParallelism parallelism) 67 67 { 68 add(makeUnique<SimpleMarkingConstraint>(WTFMove(abbreviatedName), WTFMove(name), WTFMove( function), volatility, concurrency, parallelism));68 add(makeUnique<SimpleMarkingConstraint>(WTFMove(abbreviatedName), WTFMove(name), WTFMove(executors), volatility, concurrency, parallelism)); 69 69 } 70 70 … … 167 167 } 168 168 169 void MarkingConstraintSet::executeAll (SlotVisitor& visitor)169 void MarkingConstraintSet::executeAllSynchronously(AbstractSlotVisitor& visitor) 170 170 { 171 171 for (auto& constraint : m_set) 172 constraint->execute (visitor);172 constraint->executeSynchronously(visitor); 173 173 dataLogIf(Options::logGC(), " "); 174 174 } -
trunk/Source/JavaScriptCore/heap/MarkingConstraintSet.h
r229180 r273138 1 1 /* 2 * Copyright (C) 2017 Apple Inc. All rights reserved.2 * Copyright (C) 2017-2021 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 27 27 28 28 #include "MarkingConstraint.h" 29 #include "MarkingConstraintExecutorPair.h" 29 30 #include <wtf/BitVector.h> 30 31 #include <wtf/Vector.h> … … 47 48 CString abbreviatedName, 48 49 CString name, 49 ::Function<void(SlotVisitor&)>,50 MarkingConstraintExecutorPair&&, 50 51 ConstraintVolatility, 51 52 ConstraintConcurrency = ConstraintConcurrency::Concurrent, … … 54 55 void add( 55 56 CString abbreviatedName, CString name, 56 ::Function<void(SlotVisitor&)> func,57 MarkingConstraintExecutorPair&& executors, 57 58 ConstraintVolatility volatility, 58 59 ConstraintParallelism parallelism) 59 60 { 60 add(abbreviatedName, name, WTFMove( func), volatility, ConstraintConcurrency::Concurrent, parallelism);61 add(abbreviatedName, name, WTFMove(executors), volatility, ConstraintConcurrency::Concurrent, parallelism); 61 62 } 62 63 63 64 void add(std::unique_ptr<MarkingConstraint>); 64 65 66 // The following functions are only used by the real GC via the MarkingConstraintSolver. 67 // Hence, we only need the SlotVisitor version. 68 65 69 // Assuming that the mark stacks are all empty, this will give you a guess as to whether or 66 70 // not the wavefront is advancing. … … 71 75 // assumes that you've alraedy visited roots and drained from there. 72 76 bool executeConvergence(SlotVisitor&); 73 77 78 // This function is only used by the verifier GC via Heap::verifyGC(). 79 // Hence, we only need the AbstractSlotVisitor version. 80 74 81 // Simply runs all constraints without any shenanigans. 75 void executeAll (SlotVisitor&);76 82 void executeAllSynchronously(AbstractSlotVisitor&); 83 77 84 private: 78 85 friend class MarkingConstraintSolver; 79 86 80 87 bool executeConvergenceImpl(SlotVisitor&); 81 88 -
trunk/Source/JavaScriptCore/heap/MarkingConstraintSolver.cpp
r254714 r273138 1 1 /* 2 * Copyright (C) 2017 Apple Inc. All rights reserved.2 * Copyright (C) 2017-2021 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without -
trunk/Source/JavaScriptCore/heap/MarkingConstraintSolver.h
r242812 r273138 1 1 /* 2 * Copyright (C) 2017 Apple Inc. All rights reserved.2 * Copyright (C) 2017-2021 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without -
trunk/Source/JavaScriptCore/heap/SimpleMarkingConstraint.cpp
r226783 r273138 1 1 /* 2 * Copyright (C) 2017 Apple Inc. All rights reserved.2 * Copyright (C) 2017-2021 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 31 31 SimpleMarkingConstraint::SimpleMarkingConstraint( 32 32 CString abbreviatedName, CString name, 33 ::Function<void(SlotVisitor&)> executeFunction,33 MarkingConstraintExecutorPair&& executors, 34 34 ConstraintVolatility volatility, ConstraintConcurrency concurrency, 35 35 ConstraintParallelism parallelism) 36 36 : MarkingConstraint(WTFMove(abbreviatedName), WTFMove(name), volatility, concurrency, parallelism) 37 , m_execut eFunction(WTFMove(executeFunction))37 , m_executors(WTFMove(executors)) 38 38 { 39 39 } … … 43 43 } 44 44 45 void SimpleMarkingConstraint::executeImpl(SlotVisitor& visitor) 45 template<typename Visitor> 46 void SimpleMarkingConstraint::executeImplImpl(Visitor& visitor) 46 47 { 47 m_execut eFunction(visitor);48 m_executors.execute(visitor); 48 49 } 50 51 void SimpleMarkingConstraint::executeImpl(AbstractSlotVisitor& visitor) { executeImplImpl(visitor); } 52 void SimpleMarkingConstraint::executeImpl(SlotVisitor& visitor) { executeImplImpl(visitor); } 49 53 50 54 } // namespace JSC -
trunk/Source/JavaScriptCore/heap/SimpleMarkingConstraint.h
r261567 r273138 1 1 /* 2 * Copyright (C) 2017 Apple Inc. All rights reserved.2 * Copyright (C) 2017-2021 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 27 27 28 28 #include "MarkingConstraint.h" 29 #include <wtf/Function.h>29 #include "MarkingConstraintExecutorPair.h" 30 30 31 31 namespace JSC { … … 38 38 JS_EXPORT_PRIVATE SimpleMarkingConstraint( 39 39 CString abbreviatedName, CString name, 40 ::Function<void(SlotVisitor&)>,40 MarkingConstraintExecutorPair&&, 41 41 ConstraintVolatility, 42 42 ConstraintConcurrency = ConstraintConcurrency::Concurrent, … … 45 45 SimpleMarkingConstraint( 46 46 CString abbreviatedName, CString name, 47 ::Function<void(SlotVisitor&)> func,47 MarkingConstraintExecutorPair&& executors, 48 48 ConstraintVolatility volatility, 49 49 ConstraintParallelism parallelism) 50 : SimpleMarkingConstraint(abbreviatedName, name, WTFMove( func), volatility, ConstraintConcurrency::Concurrent, parallelism)50 : SimpleMarkingConstraint(abbreviatedName, name, WTFMove(executors), volatility, ConstraintConcurrency::Concurrent, parallelism) 51 51 { 52 52 } … … 55 55 56 56 private: 57 template<typename Visitor> ALWAYS_INLINE void executeImplImpl(Visitor&); 58 void executeImpl(AbstractSlotVisitor&) final; 57 59 void executeImpl(SlotVisitor&) final; 58 60 59 ::Function<void(SlotVisitor&)> m_executeFunction;61 MarkingConstraintExecutorPair m_executors; 60 62 }; 61 63 -
trunk/Source/JavaScriptCore/heap/SlotVisitor.cpp
r263674 r273138 1 1 /* 2 * Copyright (C) 2012-202 0Apple Inc. All rights reserved.2 * Copyright (C) 2012-2021 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 78 78 79 79 SlotVisitor::SlotVisitor(Heap& heap, CString codeName) 80 : m_bytesVisited(0) 81 , m_visitCount(0) 82 , m_isInParallelMode(false) 80 : Base(heap, codeName, heap.m_opaqueRoots) 83 81 , m_markingVersion(MarkedSpace::initialVersion) 84 , m_heap(heap)85 , m_codeName(codeName)86 82 #if ASSERT_ENABLED 87 83 , m_isCheckingForDefaultMarkViolation(false) 88 , m_isDraining(false)89 84 #endif 90 85 { … … 118 113 void SlotVisitor::reset() 119 114 { 115 AbstractSlotVisitor::reset(); 120 116 m_bytesVisited = 0; 121 m_visitCount = 0;122 117 m_heapAnalyzer = nullptr; 123 118 RELEASE_ASSERT(!m_currentCell); … … 231 226 { 232 227 if (UNLIKELY(m_heapAnalyzer)) 233 m_heapAnalyzer->analyzeEdge(m_currentCell, cell, m_rootMarkReason);228 m_heapAnalyzer->analyzeEdge(m_currentCell, cell, rootMarkReason()); 234 229 235 230 appendHiddenSlowImpl(cell, dependency); … … 808 803 } 809 804 805 NO_RETURN_DUE_TO_CRASH void SlotVisitor::addParallelConstraintTask(RefPtr<SharedTask<void(AbstractSlotVisitor&)>>) 806 { 807 RELEASE_ASSERT_NOT_REACHED(); 808 } 809 810 810 void SlotVisitor::addParallelConstraintTask(RefPtr<SharedTask<void(SlotVisitor&)>> task) 811 811 { … … 813 813 RELEASE_ASSERT(m_currentConstraint); 814 814 RELEASE_ASSERT(task); 815 815 816 816 m_currentSolver->addParallelTask(task, *m_currentConstraint); 817 817 } -
trunk/Source/JavaScriptCore/heap/SlotVisitor.h
r272797 r273138 26 26 #pragma once 27 27 28 #include "AbstractSlotVisitor.h" 28 29 #include "HandleTypes.h" 29 30 #include "IterationStatus.h" 30 #include "MarkStack.h"31 #include "RootMarkReason.h"32 #include "VisitRaceKey.h"33 31 #include <wtf/Forward.h> 34 32 #include <wtf/MonotonicTime.h> 35 #include <wtf/SharedTask.h>36 #include <wtf/text/CString.h>37 33 38 34 namespace JSC { 39 35 40 class ConservativeRoots;41 36 class GCThreadSharedData; 42 class Heap;43 37 class HeapCell; 44 38 class HeapAnalyzer; 45 class MarkedBlock;46 39 class MarkingConstraint; 47 40 class MarkingConstraintSolver; 48 template<typename T> class Weak;49 template<typename T, typename Traits> class WriteBarrierBase;50 41 51 42 typedef uint32_t HeapVersion; 52 43 53 class SlotVisitor {44 class SlotVisitor final : public AbstractSlotVisitor { 54 45 WTF_MAKE_NONCOPYABLE(SlotVisitor); 55 46 WTF_MAKE_FAST_ALLOCATED; 56 47 48 using Base = AbstractSlotVisitor; 49 57 50 friend class SetCurrentCellScope; 58 51 friend class Heap; 59 52 60 53 public: 54 class Context { 55 public: 56 ALWAYS_INLINE Context(AbstractSlotVisitor&, HeapCell*) { } 57 }; 58 59 class SuppressGCVerifierScope { 60 public: 61 SuppressGCVerifierScope(SlotVisitor&) { } 62 }; 63 64 class DefaultMarkingViolationAssertionScope { 65 public: 66 #if ASSERT_ENABLED 67 DefaultMarkingViolationAssertionScope(SlotVisitor& visitor) 68 : m_visitor(visitor) 69 { 70 m_wasCheckingForDefaultMarkViolation = m_visitor.m_isCheckingForDefaultMarkViolation; 71 m_visitor.m_isCheckingForDefaultMarkViolation = false; 72 } 73 74 ~DefaultMarkingViolationAssertionScope() 75 { 76 m_visitor.m_isCheckingForDefaultMarkViolation = m_wasCheckingForDefaultMarkViolation; 77 } 78 79 private: 80 SlotVisitor& m_visitor; 81 bool m_wasCheckingForDefaultMarkViolation; 82 #else 83 DefaultMarkingViolationAssertionScope(SlotVisitor&) { } 84 #endif 85 }; 86 61 87 SlotVisitor(Heap&, CString codeName); 62 88 ~SlotVisitor(); 63 89 64 MarkStackArray& collectorMarkStack() { return m_collectorStack; } 65 MarkStackArray& mutatorMarkStack() { return m_mutatorStack; } 66 const MarkStackArray& collectorMarkStack() const { return m_collectorStack; } 67 const MarkStackArray& mutatorMarkStack() const { return m_mutatorStack; } 68 69 VM& vm(); 70 const VM& vm() const; 71 Heap* heap() const; 72 73 void append(const ConservativeRoots&); 74 90 void append(const ConservativeRoots&) final; 91 75 92 template<typename T, typename Traits> void append(const WriteBarrierBase<T, Traits>&); 76 93 template<typename T, typename Traits> void appendHidden(const WriteBarrierBase<T, Traits>&); 77 94 template<typename Iterator> void append(Iterator begin , Iterator end); 78 void appendValues(const WriteBarrierBase<Unknown, RawValueTraits<Unknown>>*, size_t count);79 void appendValuesHidden(const WriteBarrierBase<Unknown, RawValueTraits<Unknown>>*, size_t count);80 95 ALWAYS_INLINE void appendValues(const WriteBarrierBase<Unknown, RawValueTraits<Unknown>>*, size_t count); 96 ALWAYS_INLINE void appendValuesHidden(const WriteBarrierBase<Unknown, RawValueTraits<Unknown>>*, size_t count); 97 81 98 // These don't require you to prove that you have a WriteBarrier<>. That makes sense 82 99 // for: … … 88 105 // If you are not a root and you don't know what kind of barrier you have, then you 89 106 // shouldn't call these methods. 90 void appendUnbarriered(JSValue);91 void appendUnbarriered(JSValue*, size_t);92 void appendUnbarriered(JSCell*) ;107 ALWAYS_INLINE void appendUnbarriered(JSValue); 108 ALWAYS_INLINE void appendUnbarriered(JSValue*, size_t); 109 void appendUnbarriered(JSCell*) final; 93 110 94 111 template<typename T> 95 112 void append(const Weak<T>& weak); 96 113 97 void appendHiddenUnbarriered(JSValue); 98 void appendHiddenUnbarriered(JSCell*); 99 100 bool addOpaqueRoot(void*); // Returns true if the root was new. 101 102 bool containsOpaqueRoot(void*) const; 103 104 bool isEmpty() { return m_collectorStack.isEmpty() && m_mutatorStack.isEmpty(); } 105 106 bool isFirstVisit() const { return m_isFirstVisit; } 114 ALWAYS_INLINE void appendHiddenUnbarriered(JSValue); 115 void appendHiddenUnbarriered(JSCell*) final; 116 117 bool isFirstVisit() const final { return m_isFirstVisit; } 118 119 bool isMarked(const void*) const final; 120 bool isMarked(MarkedBlock&, HeapCell*) const final; 121 bool isMarked(PreciseAllocation&, HeapCell*) const final; 107 122 108 123 void didStartMarking(); … … 111 126 112 127 size_t bytesVisited() const { return m_bytesVisited; } 113 size_t visitCount() const { return m_visitCount; }114 115 void addToVisitCount(size_t value) { m_visitCount += value; }116 128 117 129 void donate(); … … 136 148 // This informs the GC about auxiliary of some size that we are keeping alive. If you don't do 137 149 // this then the space will be freed at end of GC. 138 void markAuxiliary(const void* base) ;139 140 void reportExtraMemoryVisited(size_t) ;150 void markAuxiliary(const void* base) final; 151 152 void reportExtraMemoryVisited(size_t) final; 141 153 #if ENABLE(RESOURCE_USAGE) 142 void reportExternalMemoryVisited(size_t) ;154 void reportExternalMemoryVisited(size_t) final; 143 155 #endif 144 156 145 void dump(PrintStream&) const; 146 147 bool isAnalyzingHeap() const { return !!m_heapAnalyzer; } 148 HeapAnalyzer* heapAnalyzer() const { return m_heapAnalyzer; } 149 150 RootMarkReason rootMarkReason() const { return m_rootMarkReason; } 151 void setRootMarkReason(RootMarkReason reason) { m_rootMarkReason = reason; } 157 void dump(PrintStream&) const final; 152 158 153 159 HeapVersion markingVersion() const { return m_markingVersion; } 154 160 155 bool mutatorIsStopped() const { return m_mutatorIsStopped; }161 bool mutatorIsStopped() const final { return m_mutatorIsStopped; } 156 162 157 163 Lock& rightToRun() { return m_rightToRun; } … … 165 171 void optimizeForStoppedMutator(); 166 172 167 void didRace(const VisitRaceKey&) ;173 void didRace(const VisitRaceKey&) final; 168 174 void didRace(JSCell* cell, const char* reason) { didRace(VisitRaceKey(cell, reason)); } 169 175 170 void visitAsConstraint(const JSCell*) ;176 void visitAsConstraint(const JSCell*) final; 171 177 172 178 bool didReachTermination(); 173 179 174 void setIgnoreNewOpaqueRoots(bool value) { m_ignoreNewOpaqueRoots = value; }175 176 180 void donateAll(); 177 178 const char* codeName() const { return m_codeName.data(); } 179 180 JS_EXPORT_PRIVATE void addParallelConstraintTask(RefPtr<SharedTask<void(SlotVisitor&)>>); 181 182 NO_RETURN_DUE_TO_CRASH void addParallelConstraintTask(RefPtr<SharedTask<void(AbstractSlotVisitor&)>>) final; 183 JS_EXPORT_PRIVATE void addParallelConstraintTask(RefPtr<SharedTask<void(SlotVisitor&)>>) final; 181 184 182 185 private: … … 217 220 MarkStackArray& correspondingGlobalStack(MarkStackArray&); 218 221 219 MarkStackArray m_collectorStack;220 MarkStackArray m_mutatorStack; 221 222 size_t m_bytesVisited; 223 size_t m_ visitCount;222 bool m_isInParallelMode { false }; 223 224 HeapVersion m_markingVersion; 225 226 size_t m_bytesVisited { 0 }; 224 227 size_t m_nonCellVisitCount { 0 }; // Used for incremental draining, ignored otherwise. 225 228 CheckedSize m_extraMemorySize { 0 }; 226 bool m_isInParallelMode;227 bool m_ignoreNewOpaqueRoots { false }; // Useful as a debugging mode.228 229 HeapVersion m_markingVersion;230 231 Heap& m_heap;232 229 233 230 HeapAnalyzer* m_heapAnalyzer { nullptr }; 234 231 JSCell* m_currentCell { nullptr }; 235 RootMarkReason m_rootMarkReason { RootMarkReason::None };236 232 bool m_isFirstVisit { false }; 237 233 bool m_mutatorIsStopped { false }; … … 239 235 Lock m_rightToRun; 240 236 241 CString m_codeName;242 243 MarkingConstraint* m_currentConstraint { nullptr };244 MarkingConstraintSolver* m_currentSolver { nullptr };245 246 237 // Put padding here to mitigate false sharing between multiple SlotVisitors. 247 238 char padding[64]; 248 public:249 239 #if ASSERT_ENABLED 250 bool m_isCheckingForDefaultMarkViolation; 251 bool m_isDraining; 240 bool m_isCheckingForDefaultMarkViolation { false }; 252 241 #endif 253 242 }; … … 272 261 }; 273 262 274 class SetRootMarkReasonScope {275 public:276 SetRootMarkReasonScope(SlotVisitor& visitor, RootMarkReason reason)277 : m_visitor(visitor)278 , m_previousReason(visitor.rootMarkReason())279 {280 m_visitor.setRootMarkReason(reason);281 }282 283 ~SetRootMarkReasonScope()284 {285 m_visitor.setRootMarkReason(m_previousReason);286 }287 288 private:289 SlotVisitor& m_visitor;290 RootMarkReason m_previousReason;291 };292 293 263 } // namespace JSC -
trunk/Source/JavaScriptCore/heap/SlotVisitorInlines.h
r252302 r273138 1 1 /* 2 * Copyright (C) 2012-20 19Apple Inc. All rights reserved.2 * Copyright (C) 2012-2021 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 26 26 #pragma once 27 27 28 #include "AbstractSlotVisitorInlines.h" 29 #include "MarkedBlock.h" 30 #include "PreciseAllocation.h" 28 31 #include "SlotVisitor.h" 29 #include "Weak.h"30 #include "WeakInlines.h"31 32 32 33 namespace JSC { … … 135 136 } 136 137 137 inline bool SlotVisitor::addOpaqueRoot(void* ptr) 138 ALWAYS_INLINE bool SlotVisitor::isMarked(const void* p) const 138 139 { 139 if (!ptr) 140 return false; 141 if (m_ignoreNewOpaqueRoots) 142 return false; 143 if (!heap()->m_opaqueRoots.add(ptr)) 144 return false; 145 m_visitCount++; 146 return true; 140 return heap()->isMarked(p); 147 141 } 148 142 149 inline bool SlotVisitor::containsOpaqueRoot(void* ptr) const143 ALWAYS_INLINE bool SlotVisitor::isMarked(MarkedBlock& container, HeapCell* cell) const 150 144 { 151 return heap()->m_opaqueRoots.contains(ptr); 145 return container.isMarked(markingVersion(), cell); 146 } 147 148 ALWAYS_INLINE bool SlotVisitor::isMarked(PreciseAllocation& container, HeapCell* cell) const 149 { 150 return container.isMarked(markingVersion(), cell); 152 151 } 153 152 … … 170 169 #endif 171 170 172 inline Heap* SlotVisitor::heap() const173 {174 return &m_heap;175 }176 177 inline VM& SlotVisitor::vm()178 {179 return m_heap.vm();180 }181 182 inline const VM& SlotVisitor::vm() const183 {184 return m_heap.vm();185 }186 187 171 template<typename Func> 188 172 IterationStatus SlotVisitor::forEachMarkStack(const Func& func) -
trunk/Source/JavaScriptCore/heap/Subspace.h
r254023 r273138 1 1 /* 2 * Copyright (C) 2017-20 18Apple Inc. All rights reserved.2 * Copyright (C) 2017-2021 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 87 87 void forEachMarkedCell(const Func&); 88 88 89 template<typename Func>90 Ref<SharedTask<void( SlotVisitor&)>> forEachMarkedCellInParallel(const Func&);89 template<typename Visitor, typename Func> 90 Ref<SharedTask<void(Visitor&)>> forEachMarkedCellInParallel(const Func&); 91 91 92 92 template<typename Func> -
trunk/Source/JavaScriptCore/heap/SubspaceInlines.h
r261569 r273138 1 1 /* 2 * Copyright (C) 2017-20 18Apple Inc. All rights reserved.2 * Copyright (C) 2017-2021 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 86 86 } 87 87 88 template<typename Func>89 Ref<SharedTask<void( SlotVisitor&)>> Subspace::forEachMarkedCellInParallel(const Func& func)88 template<typename Visitor, typename Func> 89 Ref<SharedTask<void(Visitor&)>> Subspace::forEachMarkedCellInParallel(const Func& func) 90 90 { 91 class Task final : public SharedTask<void( SlotVisitor&)> {91 class Task final : public SharedTask<void(Visitor&)> { 92 92 public: 93 93 Task(Subspace& subspace, const Func& func) … … 98 98 } 99 99 100 void run( SlotVisitor& visitor) final100 void run(Visitor& visitor) final 101 101 { 102 102 while (MarkedBlock::Handle* handle = m_blockSource->run()) { -
trunk/Source/JavaScriptCore/heap/VisitCounter.h
r225524 r273138 1 1 /* 2 * Copyright (C) 2017 Apple Inc. All rights reserved.2 * Copyright (C) 2017-2021 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 26 26 #pragma once 27 27 28 #include " SlotVisitor.h"28 #include "AbstractSlotVisitor.h" 29 29 30 30 namespace JSC { … … 34 34 VisitCounter() { } 35 35 36 VisitCounter( SlotVisitor& visitor)36 VisitCounter(AbstractSlotVisitor& visitor) 37 37 : m_visitor(&visitor) 38 38 , m_initialVisitCount(visitor.visitCount()) … … 40 40 } 41 41 42 SlotVisitor& visitor() const { return *m_visitor; }42 AbstractSlotVisitor& visitor() const { return *m_visitor; } 43 43 44 44 size_t visitCount() const … … 48 48 49 49 private: 50 SlotVisitor* m_visitor { nullptr };50 AbstractSlotVisitor* m_visitor { nullptr }; 51 51 size_t m_initialVisitCount { 0 }; 52 52 }; -
trunk/Source/JavaScriptCore/heap/WeakBlock.cpp
r261755 r273138 1 1 /* 2 * Copyright (C) 2012-20 17Apple Inc. All rights reserved.2 * Copyright (C) 2012-2021 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 99 99 } 100 100 101 template<typename ContainerType >102 void WeakBlock::specializedVisit(ContainerType& container, SlotVisitor& visitor)101 template<typename ContainerType, typename Visitor> 102 void WeakBlock::specializedVisit(ContainerType& container, Visitor& visitor) 103 103 { 104 HeapVersion markingVersion = visitor.markingVersion();105 106 104 size_t count = weakImplCount(); 105 HeapAnalyzer* heapAnalyzer = visitor.vm().activeHeapAnalyzer(); 107 106 for (size_t i = 0; i < count; ++i) { 108 107 WeakImpl* weakImpl = &weakImpls()[i]; … … 115 114 116 115 JSValue jsValue = weakImpl->jsValue(); 117 if ( container.isMarked(markingVersion, jsValue.asCell()))116 if (visitor.isMarked(container, jsValue.asCell())) 118 117 continue; 119 118 120 119 const char* reason = ""; 121 120 const char** reasonPtr = nullptr; 122 if (UNLIKELY( visitor.isAnalyzingHeap()))121 if (UNLIKELY(heapAnalyzer)) 123 122 reasonPtr = &reason; 124 123 … … 128 127 visitor.appendUnbarriered(jsValue); 129 128 130 if (UNLIKELY( visitor.isAnalyzingHeap())) {129 if (UNLIKELY(heapAnalyzer)) { 131 130 if (jsValue.isCell()) 132 visitor.heapAnalyzer()->setOpaqueRootReachabilityReasonForCell(jsValue.asCell(), *reasonPtr);131 heapAnalyzer->setOpaqueRootReachabilityReasonForCell(jsValue.asCell(), *reasonPtr); 133 132 } 134 133 } 135 134 } 136 135 137 void WeakBlock::visit(SlotVisitor& visitor) 136 template<typename Visitor> 137 ALWAYS_INLINE void WeakBlock::visitImpl(Visitor& visitor) 138 138 { 139 139 // If a block is completely empty, a visit won't have any effect. … … 149 149 specializedVisit(m_container.markedBlock(), visitor); 150 150 } 151 152 void WeakBlock::visit(AbstractSlotVisitor& visitor) { visitImpl(visitor); } 153 void WeakBlock::visit(SlotVisitor& visitor) { visitImpl(visitor); } 151 154 152 155 void WeakBlock::reap() -
trunk/Source/JavaScriptCore/heap/WeakBlock.h
r253987 r273138 1 1 /* 2 * Copyright (C) 2012-20 19Apple Inc. All rights reserved.2 * Copyright (C) 2012-2021 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 33 33 namespace JSC { 34 34 35 class AbstractSlotVisitor; 35 36 class Heap; 36 37 class SlotVisitor; … … 66 67 SweepResult takeSweepResult(); 67 68 68 void visit(SlotVisitor&); 69 JS_EXPORT_PRIVATE void visit(AbstractSlotVisitor&); 70 JS_EXPORT_PRIVATE void visit(SlotVisitor&); 69 71 70 72 void reap(); … … 74 76 75 77 private: 78 template<typename Visitor> void visitImpl(Visitor&); 79 76 80 static FreeCell* asFreeCell(WeakImpl*); 77 81 78 template<typename ContainerType >79 void specializedVisit(ContainerType&, SlotVisitor&);82 template<typename ContainerType, typename Visitor> 83 void specializedVisit(ContainerType&, Visitor&); 80 84 81 85 explicit WeakBlock(CellContainer); -
trunk/Source/JavaScriptCore/heap/WeakHandleOwner.cpp
r261755 r273138 1 1 /* 2 * Copyright (C) 2012 Apple Inc. All rights reserved.2 * Copyright (C) 2012-2021 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 36 36 } 37 37 38 bool WeakHandleOwner::isReachableFromOpaqueRoots(Handle<Unknown>, void*, SlotVisitor&, const char**)38 bool WeakHandleOwner::isReachableFromOpaqueRoots(Handle<Unknown>, void*, AbstractSlotVisitor&, const char**) 39 39 { 40 40 return false; -
trunk/Source/JavaScriptCore/heap/WeakHandleOwner.h
r235271 r273138 1 1 /* 2 * Copyright (C) 2012 Apple Inc. All rights reserved.2 * Copyright (C) 2012-2021 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 30 30 namespace JSC { 31 31 32 class SlotVisitor;32 class AbstractSlotVisitor; 33 33 34 34 class JS_EXPORT_PRIVATE WeakHandleOwner { … … 36 36 virtual ~WeakHandleOwner(); 37 37 // reason will only be non-null when generating a debug GC heap snapshot. 38 virtual bool isReachableFromOpaqueRoots(Handle<Unknown>, void* context, SlotVisitor&, char const** reason = nullptr);38 virtual bool isReachableFromOpaqueRoots(Handle<Unknown>, void* context, AbstractSlotVisitor&, char const** reason = nullptr); 39 39 virtual void finalize(Handle<Unknown>, void* context); 40 40 }; -
trunk/Source/JavaScriptCore/heap/WeakSet.cpp
r261755 r273138 124 124 } 125 125 126 template void WeakSet::visit(AbstractSlotVisitor&); 127 template void WeakSet::visit(SlotVisitor&); 128 126 129 } // namespace JSC -
trunk/Source/JavaScriptCore/heap/WeakSet.h
r267820 r273138 1 1 /* 2 * Copyright (C) 2012-20 19Apple Inc. All rights reserved.2 * Copyright (C) 2012-2021 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 52 52 bool isTriviallyDestructible() const; 53 53 54 void visit(SlotVisitor&);54 template<typename Visitor> void visit(Visitor&); 55 55 56 56 void reap(); … … 115 115 } 116 116 117 inline void WeakSet::visit(SlotVisitor& visitor) 117 template<typename Visitor> 118 inline void WeakSet::visit(Visitor& visitor) 118 119 { 119 120 for (WeakBlock* block = m_blocks.head(); block; block = block->next()) -
trunk/Source/JavaScriptCore/interpreter/ShadowChicken.cpp
r261755 r273138 1 1 /* 2 * Copyright (C) 2016-20 19Apple Inc. All rights reserved.2 * Copyright (C) 2016-2021 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 441 441 } 442 442 443 void ShadowChicken::visitChildren(SlotVisitor& visitor) 443 // We don't need a SlotVisitor version of this because ShadowChicken is only used by the 444 // Debugger, and is therefore not on the critical path for performance. 445 void ShadowChicken::visitChildren(AbstractSlotVisitor& visitor) 444 446 { 445 447 for (unsigned i = m_logCursor - m_log; i--;) { -
trunk/Source/JavaScriptCore/interpreter/ShadowChicken.h
r251425 r273138 1 1 /* 2 * Copyright (C) 2016 Apple Inc. All rights reserved.2 * Copyright (C) 2016-2021 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 36 36 namespace JSC { 37 37 38 class AbstractSlotVisitor; 38 39 class CallFrame; 39 40 class CodeBlock; … … 42 43 class JSScope; 43 44 class LLIntOffsetsExtractor; 44 class SlotVisitor;45 45 class VM; 46 46 … … 197 197 void iterate(VM&, CallFrame*, const Functor&); 198 198 199 void visitChildren( SlotVisitor&);199 void visitChildren(AbstractSlotVisitor&); 200 200 void reset(); 201 201 -
trunk/Source/JavaScriptCore/jit/GCAwareJITStubRoutine.cpp
r262920 r273138 1 1 /* 2 * Copyright (C) 2012-20 18Apple Inc. All rights reserved.2 * Copyright (C) 2012-2021 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 74 74 } 75 75 76 void GCAwareJITStubRoutine::markRequiredObjectsInternal(SlotVisitor&)77 {78 }79 80 76 MarkingGCAwareJITStubRoutine::MarkingGCAwareJITStubRoutine( 81 77 const MacroAssemblerCodeRef<JITStubRoutinePtrTag>& code, VM& vm, const JSCell* owner, … … 93 89 } 94 90 95 void MarkingGCAwareJITStubRoutine::markRequiredObjectsInternal(SlotVisitor& visitor) 91 template<typename Visitor> 92 ALWAYS_INLINE void MarkingGCAwareJITStubRoutine::markRequiredObjectsInternalImpl(Visitor& visitor) 96 93 { 97 94 for (auto& entry : m_cells) … … 99 96 } 100 97 98 void MarkingGCAwareJITStubRoutine::markRequiredObjectsInternal(AbstractSlotVisitor& visitor) 99 { 100 markRequiredObjectsInternalImpl(visitor); 101 } 102 void MarkingGCAwareJITStubRoutine::markRequiredObjectsInternal(SlotVisitor& visitor) 103 { 104 markRequiredObjectsInternalImpl(visitor); 105 } 101 106 102 107 GCAwareJITStubRoutineWithExceptionHandler::GCAwareJITStubRoutineWithExceptionHandler( -
trunk/Source/JavaScriptCore/jit/GCAwareJITStubRoutine.h
r262920 r273138 1 1 /* 2 * Copyright (C) 2012-20 18Apple Inc. All rights reserved.2 * Copyright (C) 2012-2021 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 61 61 return adoptRef(*new GCAwareJITStubRoutine(code, vm)); 62 62 } 63 64 void markRequiredObjects(SlotVisitor& visitor) 63 64 template<typename Visitor> 65 void markRequiredObjects(Visitor& visitor) 65 66 { 66 67 markRequiredObjectsInternal(visitor); … … 72 73 void observeZeroRefCount() override; 73 74 74 virtual void markRequiredObjectsInternal(SlotVisitor&); 75 virtual void markRequiredObjectsInternal(AbstractSlotVisitor&) { } 76 virtual void markRequiredObjectsInternal(SlotVisitor&) { } 75 77 76 78 private: … … 90 92 91 93 protected: 92 void markRequiredObjectsInternal(SlotVisitor&) override; 94 template<typename Visitor> void markRequiredObjectsInternalImpl(Visitor&); 95 void markRequiredObjectsInternal(AbstractSlotVisitor&) final; 96 void markRequiredObjectsInternal(SlotVisitor&) final; 93 97 94 98 private: -
trunk/Source/JavaScriptCore/jit/JITWorklist.cpp
r262402 r273138 1 1 /* 2 * Copyright (C) 2016-20 19Apple Inc. All rights reserved.2 * Copyright (C) 2016-2020 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without -
trunk/Source/JavaScriptCore/jit/PolymorphicCallStubRoutine.cpp
r269349 r273138 1 1 /* 2 * Copyright (C) 2015-20 18Apple Inc. All rights reserved.2 * Copyright (C) 2015-2021 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 136 136 } 137 137 138 void PolymorphicCallStubRoutine::markRequiredObjectsInternal(SlotVisitor& visitor) 138 template<typename Visitor> 139 ALWAYS_INLINE void PolymorphicCallStubRoutine::markRequiredObjectsInternalImpl(Visitor& visitor) 139 140 { 140 141 for (auto& variant : m_variants) … … 142 143 } 143 144 145 void PolymorphicCallStubRoutine::markRequiredObjectsInternal(AbstractSlotVisitor& visitor) 146 { 147 markRequiredObjectsInternalImpl(visitor); 148 } 149 void PolymorphicCallStubRoutine::markRequiredObjectsInternal(SlotVisitor& visitor) 150 { 151 markRequiredObjectsInternalImpl(visitor); 152 } 153 144 154 } // namespace JSC 145 155 -
trunk/Source/JavaScriptCore/jit/PolymorphicCallStubRoutine.h
r261567 r273138 1 1 /* 2 * Copyright (C) 2015-20 18Apple Inc. All rights reserved.2 * Copyright (C) 2015-2021 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 106 106 107 107 private: 108 template<typename Visitor> void markRequiredObjectsInternalImpl(Visitor&); 109 void markRequiredObjectsInternal(AbstractSlotVisitor&) final; 108 110 void markRequiredObjectsInternal(SlotVisitor&) final; 109 111 -
trunk/Source/JavaScriptCore/runtime/AbstractModuleRecord.cpp
r267186 r273138 1 1 /* 2 * Copyright (C) 2015-20 19Apple Inc. All rights reserved.2 * Copyright (C) 2015-2021 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 61 61 } 62 62 63 void AbstractModuleRecord::visitChildren(JSCell* cell, SlotVisitor& visitor) 63 template<typename Visitor> 64 void AbstractModuleRecord::visitChildrenImpl(JSCell* cell, Visitor& visitor) 64 65 { 65 66 AbstractModuleRecord* thisObject = jsCast<AbstractModuleRecord*>(cell); … … 70 71 visitor.append(thisObject->m_dependenciesMap); 71 72 } 73 74 DEFINE_VISIT_CHILDREN(AbstractModuleRecord); 72 75 73 76 void AbstractModuleRecord::appendRequestedModule(const Identifier& moduleName) -
trunk/Source/JavaScriptCore/runtime/AbstractModuleRecord.h
r267186 r273138 1 1 /* 2 * Copyright (C) 2015 Apple Inc. All rights reserved.2 * Copyright (C) 2015-2021 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 137 137 void finishCreation(JSGlobalObject*, VM&); 138 138 139 static void visitChildren(JSCell*, SlotVisitor&);139 DECLARE_VISIT_CHILDREN; 140 140 141 141 void setModuleEnvironment(JSGlobalObject*, JSModuleEnvironment*); -
trunk/Source/JavaScriptCore/runtime/ArgList.cpp
r261755 r273138 1 1 /* 2 * Copyright (C) 2003-20 17Apple Inc. All rights reserved.2 * Copyright (C) 2003-2021 Apple Inc. All rights reserved. 3 3 * 4 4 * This library is free software; you can redistribute it and/or … … 52 52 } 53 53 54 void MarkedArgumentBuffer::markLists(SlotVisitor& visitor, ListSet& markSet) 54 template<typename Visitor> 55 void MarkedArgumentBuffer::markLists(Visitor& visitor, ListSet& markSet) 55 56 { 56 57 ListSet::iterator end = markSet.end(); … … 61 62 } 62 63 } 64 65 template void MarkedArgumentBuffer::markLists(AbstractSlotVisitor&, ListSet&); 66 template void MarkedArgumentBuffer::markLists(SlotVisitor&, ListSet&); 63 67 64 68 void MarkedArgumentBuffer::slowEnsureCapacity(size_t requestedCapacity) -
trunk/Source/JavaScriptCore/runtime/ArgList.h
r261464 r273138 1 1 /* 2 2 * Copyright (C) 1999-2001 Harri Porten (porten@kde.org) 3 * Copyright (C) 2003-20 17Apple Inc. All rights reserved.3 * Copyright (C) 2003-2021 Apple Inc. All rights reserved. 4 4 * 5 5 * This library is free software; you can redistribute it and/or … … 119 119 } 120 120 121 static void markLists(SlotVisitor&, ListSet&);121 template<typename Visitor> static void markLists(Visitor&, ListSet&); 122 122 123 123 void ensureCapacity(size_t requestedCapacity) -
trunk/Source/JavaScriptCore/runtime/CacheableIdentifier.h
r259175 r273138 1 1 /* 2 * Copyright (C) 2020 Apple Inc. All rights reserved.2 * Copyright (C) 2020-2021 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 43 43 class Identifier; 44 44 class JSCell; 45 class SlotVisitor;46 45 47 46 class CacheableIdentifier { … … 88 87 uintptr_t rawBits() const { return m_bits; } 89 88 90 inline void visitAggregate(SlotVisitor&) const;89 template<typename Visitor> inline void visitAggregate(Visitor&) const; 91 90 92 91 JS_EXPORT_PRIVATE void dump(PrintStream&) const; -
trunk/Source/JavaScriptCore/runtime/CacheableIdentifierInlines.h
r259175 r273138 1 1 /* 2 * Copyright (C) 2020 Apple Inc. All rights reserved.2 * Copyright (C) 2020-2021 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 138 138 } 139 139 140 inline void CacheableIdentifier::visitAggregate(SlotVisitor& visitor) const 140 template<typename Visitor> 141 inline void CacheableIdentifier::visitAggregate(Visitor& visitor) const 141 142 { 142 143 if (m_bits && isCell()) -
trunk/Source/JavaScriptCore/runtime/ClassInfo.h
r271269 r273138 2 2 * Copyright (C) 1999-2001 Harri Porten (porten@kde.org) 3 3 * Copyright (C) 2001 Peter Kelly (pmk@post.com) 4 * Copyright (C) 2003-20 19Apple Inc. All rights reserved.4 * Copyright (C) 2003-2021 Apple Inc. All rights reserved. 5 5 * 6 6 * This library is free software; you can redistribute it and/or … … 45 45 DestroyFunctionPtr METHOD_TABLE_ENTRY(destroy); 46 46 47 using VisitChildrenFunctionPtr = void (*)(JSCell*, SlotVisitor&);48 VisitChildrenFunctionPtr METHOD_TABLE_ENTRY(visitChildren);49 50 47 using GetCallDataFunctionPtr = CallData (*)(JSCell*); 51 48 GetCallDataFunctionPtr METHOD_TABLE_ENTRY(getCallData); … … 121 118 EstimatedSizeFunctionPtr METHOD_TABLE_ENTRY(estimatedSize); 122 119 120 using VisitChildrenFunctionPtr = void (*)(JSCell*, SlotVisitor&); 121 VisitChildrenFunctionPtr METHOD_TABLE_ENTRY(visitChildrenWithSlotVisitor); 122 123 using VisitChildrenWithAbstractSlotVisitorPtr = void (*)(JSCell*, AbstractSlotVisitor&); 124 VisitChildrenWithAbstractSlotVisitorPtr METHOD_TABLE_ENTRY(visitChildrenWithAbstractSlotVisitor); 125 126 ALWAYS_INLINE void visitChildren(JSCell* cell, SlotVisitor& visitor) const { visitChildrenWithSlotVisitor(cell, visitor); } 127 ALWAYS_INLINE void visitChildren(JSCell* cell, AbstractSlotVisitor& visitor) const { visitChildrenWithAbstractSlotVisitor(cell, visitor); } 128 123 129 using VisitOutputConstraintsPtr = void (*)(JSCell*, SlotVisitor&); 124 VisitOutputConstraintsPtr METHOD_TABLE_ENTRY(visitOutputConstraints); 130 VisitOutputConstraintsPtr METHOD_TABLE_ENTRY(visitOutputConstraintsWithSlotVisitor); 131 132 using VisitOutputConstraintsWithAbstractSlotVisitorPtr = void (*)(JSCell*, AbstractSlotVisitor&); 133 VisitOutputConstraintsWithAbstractSlotVisitorPtr METHOD_TABLE_ENTRY(visitOutputConstraintsWithAbstractSlotVisitor); 134 135 ALWAYS_INLINE void visitOutputConstraints(JSCell* cell, SlotVisitor& visitor) const { visitOutputConstraintsWithSlotVisitor(cell, visitor); } 136 ALWAYS_INLINE void visitOutputConstraints(JSCell* cell, AbstractSlotVisitor& visitor) const { visitOutputConstraintsWithAbstractSlotVisitor(cell, visitor); } 125 137 }; 126 138 … … 148 160 { \ 149 161 &ClassName::destroy, \ 150 &ClassName::visitChildren, \151 162 &ClassName::getCallData, \ 152 163 &ClassName::getConstructData, \ … … 174 185 &ClassName::analyzeHeap, \ 175 186 &ClassName::estimatedSize, \ 187 &ClassName::visitChildren, \ 188 &ClassName::visitChildren, \ 189 &ClassName::visitOutputConstraints, \ 176 190 &ClassName::visitOutputConstraints, \ 177 191 }, \ -
trunk/Source/JavaScriptCore/runtime/ClonedArguments.cpp
r271269 r273138 1 1 /* 2 * Copyright (C) 2015-20 17Apple Inc. All rights reserved.2 * Copyright (C) 2015-2021 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 268 268 } 269 269 270 void ClonedArguments::visitChildren(JSCell* cell, SlotVisitor& visitor) 270 template<typename Visitor> 271 void ClonedArguments::visitChildrenImpl(JSCell* cell, Visitor& visitor) 271 272 { 272 273 ClonedArguments* thisObject = jsCast<ClonedArguments*>(cell); … … 276 277 } 277 278 279 DEFINE_VISIT_CHILDREN(ClonedArguments); 280 278 281 } // namespace JSC 279 282 -
trunk/Source/JavaScriptCore/runtime/ClonedArguments.h
r271269 r273138 1 1 /* 2 * Copyright (C) 2015-202 0Apple Inc. All rights reserved.2 * Copyright (C) 2015-2021 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 63 63 static Structure* createSlowPutStructure(VM&, JSGlobalObject*, JSValue prototype); 64 64 65 static void visitChildren(JSCell*, SlotVisitor&);65 DECLARE_VISIT_CHILDREN; 66 66 67 67 DECLARE_INFO; -
trunk/Source/JavaScriptCore/runtime/DirectArguments.cpp
r261755 r273138 1 1 /* 2 * Copyright (C) 2015-20 18Apple Inc. All rights reserved.2 * Copyright (C) 2015-2021 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 91 91 } 92 92 93 void DirectArguments::visitChildren(JSCell* thisCell, SlotVisitor& visitor) 93 template<typename Visitor> 94 void DirectArguments::visitChildrenImpl(JSCell* thisCell, Visitor& visitor) 94 95 { 95 96 DirectArguments* thisObject = static_cast<DirectArguments*>(thisCell); … … 104 105 GenericArguments<DirectArguments>::visitChildren(thisCell, visitor); 105 106 } 107 108 DEFINE_VISIT_CHILDREN(DirectArguments); 106 109 107 110 Structure* DirectArguments::createStructure(VM& vm, JSGlobalObject* globalObject, JSValue prototype) -
trunk/Source/JavaScriptCore/runtime/DirectArguments.h
r256087 r273138 1 1 /* 2 * Copyright (C) 2015-20 19Apple Inc. All rights reserved.2 * Copyright (C) 2015-2021 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 66 66 67 67 static size_t estimatedSize(JSCell*, VM&); 68 static void visitChildren(JSCell*, SlotVisitor&);68 DECLARE_VISIT_CHILDREN; 69 69 70 70 uint32_t internalLength() const -
trunk/Source/JavaScriptCore/runtime/EvalExecutable.cpp
r272580 r273138 1 1 /* 2 * Copyright (C) 2009 , 2010, 2013, 2015-2016Apple Inc. All rights reserved.2 * Copyright (C) 2009-2021 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 51 51 } 52 52 53 void EvalExecutable::visitChildren(JSCell* cell, SlotVisitor& visitor) 53 template<typename Visitor> 54 void EvalExecutable::visitChildrenImpl(JSCell* cell, Visitor& visitor) 54 55 { 55 56 EvalExecutable* thisObject = jsCast<EvalExecutable*>(cell); … … 65 66 } 66 67 68 DEFINE_VISIT_CHILDREN(EvalExecutable); 69 67 70 } // namespace JSC -
trunk/Source/JavaScriptCore/runtime/EvalExecutable.h
r272580 r273138 1 1 /* 2 * Copyright (C) 2009-20 19Apple Inc. All rights reserved.2 * Copyright (C) 2009-2021 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 80 80 EvalExecutable(JSGlobalObject*, const SourceCode&, bool inStrictContext, DerivedContextType, bool isArrowFunctionContext, bool isInsideOrdinaryFunction, EvalContextType, NeedsClassFieldInitializer, PrivateBrandRequirement); 81 81 82 static void visitChildren(JSCell*, SlotVisitor&);82 DECLARE_VISIT_CHILDREN; 83 83 84 84 unsigned m_needsClassFieldInitializer : 1; -
trunk/Source/JavaScriptCore/runtime/Exception.cpp
r262054 r273138 1 1 /* 2 * Copyright (C) 2015-20 19Apple Inc. All rights reserved.2 * Copyright (C) 2015-2021 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 54 54 } 55 55 56 void Exception::visitChildren(JSCell* cell, SlotVisitor& visitor) 56 template<typename Visitor> 57 void Exception::visitChildrenImpl(JSCell* cell, Visitor& visitor) 57 58 { 58 59 Exception* thisObject = jsCast<Exception*>(cell); … … 62 63 visitor.append(thisObject->m_value); 63 64 for (StackFrame& frame : thisObject->m_stack) 64 frame.visit Children(visitor);65 frame.visitAggregate(visitor); 65 66 } 67 68 DEFINE_VISIT_CHILDREN(Exception); 66 69 67 70 Exception::Exception(VM& vm) -
trunk/Source/JavaScriptCore/runtime/Exception.h
r253461 r273138 1 1 /* 2 * Copyright (C) 2015-20 19Apple Inc. All rights reserved.2 * Copyright (C) 2015-2021 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 52 52 static Structure* createStructure(VM&, JSGlobalObject*, JSValue prototype); 53 53 54 static void visitChildren(JSCell*, SlotVisitor&);54 DECLARE_VISIT_CHILDREN; 55 55 56 56 DECLARE_EXPORT_INFO; -
trunk/Source/JavaScriptCore/runtime/FunctionExecutable.cpp
r261895 r273138 1 1 /* 2 * Copyright (C) 2009-20 18Apple Inc. All rights reserved.2 * Copyright (C) 2009-2021 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 68 68 } 69 69 70 void FunctionExecutable::visitChildren(JSCell* cell, SlotVisitor& visitor) 70 template<typename Visitor> 71 void FunctionExecutable::visitChildrenImpl(JSCell* cell, Visitor& visitor) 71 72 { 72 73 FunctionExecutable* thisObject = jsCast<FunctionExecutable*>(cell); … … 86 87 } 87 88 } 89 90 DEFINE_VISIT_CHILDREN(FunctionExecutable); 88 91 89 92 FunctionExecutable* FunctionExecutable::fromGlobalCode( -
trunk/Source/JavaScriptCore/runtime/FunctionExecutable.h
r259676 r273138 1 1 /* 2 * Copyright (C) 2009-20 19Apple Inc. All rights reserved.2 * Copyright (C) 2009-2021 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 167 167 SourceCode classSource() const { return m_unlinkedExecutable->classSource(); } 168 168 169 static void visitChildren(JSCell*, SlotVisitor&);169 DECLARE_VISIT_CHILDREN; 170 170 static Structure* createStructure(VM& vm, JSGlobalObject* globalObject, JSValue proto) 171 171 { -
trunk/Source/JavaScriptCore/runtime/FunctionRareData.cpp
r261895 r273138 1 1 /* 2 * Copyright (C) 2015-20 19Apple Inc. All rights reserved.2 * Copyright (C) 2015-2021 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 52 52 } 53 53 54 void FunctionRareData::visitChildren(JSCell* cell, SlotVisitor& visitor) 54 template<typename Visitor> 55 void FunctionRareData::visitChildrenImpl(JSCell* cell, Visitor& visitor) 55 56 { 56 57 FunctionRareData* rareData = jsCast<FunctionRareData*>(cell); … … 63 64 visitor.append(rareData->m_executable); 64 65 } 66 67 DEFINE_VISIT_CHILDREN(FunctionRareData); 65 68 66 69 FunctionRareData::FunctionRareData(VM& vm, ExecutableBase* executable) -
trunk/Source/JavaScriptCore/runtime/FunctionRareData.h
r260415 r273138 1 1 /* 2 * Copyright (C) 2015-20 19Apple Inc. All rights reserved.2 * Copyright (C) 2015-2021 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 66 66 static Structure* createStructure(VM&, JSGlobalObject*, JSValue prototype); 67 67 68 static void visitChildren(JSCell*, SlotVisitor&);68 DECLARE_VISIT_CHILDREN; 69 69 70 70 DECLARE_INFO; -
trunk/Source/JavaScriptCore/runtime/GenericArguments.h
r271269 r273138 1 1 /* 2 * Copyright (C) 2015-202 0Apple Inc. All rights reserved.2 * Copyright (C) 2015-2021 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 45 45 } 46 46 47 static void visitChildren(JSCell*, SlotVisitor&);47 DECLARE_VISIT_CHILDREN; 48 48 static bool getOwnPropertySlot(JSObject*, JSGlobalObject*, PropertyName, PropertySlot&); 49 49 static bool getOwnPropertySlotByIndex(JSObject*, JSGlobalObject*, unsigned propertyName, PropertySlot&); -
trunk/Source/JavaScriptCore/runtime/GenericArgumentsInlines.h
r271570 r273138 1 1 /* 2 * Copyright (C) 2015-202 0Apple Inc. All rights reserved.2 * Copyright (C) 2015-2021 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 32 32 33 33 template<typename Type> 34 void GenericArguments<Type>::visitChildren(JSCell* thisCell, SlotVisitor& visitor) 34 template<typename Visitor> 35 void GenericArguments<Type>::visitChildrenImpl(JSCell* thisCell, Visitor& visitor) 35 36 { 36 37 Type* thisObject = static_cast<Type*>(thisCell); … … 41 42 visitor.markAuxiliary(thisObject->m_modifiedArgumentsDescriptor.getUnsafe()); 42 43 } 44 45 DEFINE_VISIT_CHILDREN_WITH_MODIFIER(template<typename Type>, GenericArguments<Type>); 43 46 44 47 template<typename Type> -
trunk/Source/JavaScriptCore/runtime/GetterSetter.cpp
r261755 r273138 2 2 * Copyright (C) 1999-2002 Harri Porten (porten@kde.org) 3 3 * Copyright (C) 2001 Peter Kelly (pmk@post.com) 4 * Copyright (C) 2004-20 17Apple Inc. All rights reserved.4 * Copyright (C) 2004-2021 Apple Inc. All rights reserved. 5 5 * 6 6 * This library is free software; you can redistribute it and/or … … 34 34 const ClassInfo GetterSetter::s_info = { "GetterSetter", nullptr, nullptr, nullptr, CREATE_METHOD_TABLE(GetterSetter) }; 35 35 36 void GetterSetter::visitChildren(JSCell* cell, SlotVisitor& visitor) 36 template<typename Visitor> 37 void GetterSetter::visitChildrenImpl(JSCell* cell, Visitor& visitor) 37 38 { 38 39 GetterSetter* thisObject = jsCast<GetterSetter*>(cell); … … 43 44 visitor.append(thisObject->m_setter); 44 45 } 46 47 DEFINE_VISIT_CHILDREN(GetterSetter); 45 48 46 49 JSValue callGetter(JSGlobalObject* globalObject, JSValue base, JSValue getterSetter) -
trunk/Source/JavaScriptCore/runtime/GetterSetter.h
r262827 r273138 2 2 * Copyright (C) 1999-2001 Harri Porten (porten@kde.org) 3 3 * Copyright (C) 2001 Peter Kelly (pmk@post.com) 4 * Copyright (C) 2003-20 19Apple Inc. All rights reserved.4 * Copyright (C) 2003-2021 Apple Inc. All rights reserved. 5 5 * 6 6 * This library is free software; you can redistribute it and/or … … 83 83 } 84 84 85 static void visitChildren(JSCell*, SlotVisitor&);85 DECLARE_VISIT_CHILDREN; 86 86 87 87 JSObject* getter() const { return m_getter.get(); } -
trunk/Source/JavaScriptCore/runtime/HashMapImpl.cpp
r261895 r273138 1 1 /* 2 * Copyright (C) 2016 Apple Inc. All rights reserved.2 * Copyright (C) 2016-2021 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 31 31 namespace JSC { 32 32 33 DEFINE_VISIT_CHILDREN_WITH_MODIFIER(template<>, HashMapBucket<HashMapBucketDataKey>); 34 DEFINE_VISIT_CHILDREN_WITH_MODIFIER(template<>, HashMapBucket<HashMapBucketDataKeyValue>); 35 33 36 template<> 34 37 const ClassInfo HashMapBucket<HashMapBucketDataKey>::s_info = … … 39 42 { "HashMapBucket", nullptr, nullptr, nullptr, CREATE_METHOD_TABLE(HashMapBucket<HashMapBucketDataKeyValue>) }; 40 43 41 template <typename Data> 42 void HashMapBucket<Data>::visitChildren(JSCell* cell, SlotVisitor& visitor) 44 template<typename Data> 45 template<typename Visitor> 46 void HashMapBucket<Data>::visitChildrenImpl(JSCell* cell, Visitor& visitor) 43 47 { 44 48 HashMapBucket* thisObject = jsCast<HashMapBucket*>(cell); … … 53 57 } 54 58 55 template <typename HashMapBucket> 56 void HashMapImpl<HashMapBucket>::visitChildren(JSCell* cell, SlotVisitor& visitor) 59 template<typename HashMapBucket> 60 template<typename Visitor> 61 void HashMapImpl<HashMapBucket>::visitChildrenImpl(JSCell* cell, Visitor& visitor) 57 62 { 58 63 HashMapImpl* thisObject = jsCast<HashMapImpl*>(cell); … … 66 71 visitor.markAuxiliary(buffer); 67 72 } 73 74 DEFINE_VISIT_CHILDREN_WITH_MODIFIER(template<typename HashMapBucket>, HashMapImpl<HashMapBucket>); 68 75 69 76 template <typename HashMapBucket> -
trunk/Source/JavaScriptCore/runtime/HashMapImpl.h
r267624 r273138 1 1 /* 2 * Copyright (C) 2016-20 18Apple Inc. All rights reserved.2 * Copyright (C) 2016-2021 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 149 149 } 150 150 151 static void visitChildren(JSCell*, SlotVisitor&);151 DECLARE_VISIT_CHILDREN; 152 152 153 153 ALWAYS_INLINE HashMapBucket* next() const { return m_next.get(); } … … 365 365 using BucketType = HashMapBucketType; 366 366 367 static void visitChildren(JSCell*, SlotVisitor&);367 DECLARE_VISIT_CHILDREN; 368 368 369 369 static size_t estimatedSize(JSCell*, VM&); -
trunk/Source/JavaScriptCore/runtime/InternalFunction.cpp
r267364 r273138 2 2 * Copyright (C) 1999-2002 Harri Porten (porten@kde.org) 3 3 * Copyright (C) 2001 Peter Kelly (pmk@post.com) 4 * Copyright (C) 2004-20 19Apple Inc. All rights reserved.4 * Copyright (C) 2004-2021 Apple Inc. All rights reserved. 5 5 * 6 6 * This library is free software; you can redistribute it and/or … … 65 65 } 66 66 67 void InternalFunction::visitChildren(JSCell* cell, SlotVisitor& visitor) 67 template<typename Visitor> 68 void InternalFunction::visitChildrenImpl(JSCell* cell, Visitor& visitor) 68 69 { 69 70 InternalFunction* thisObject = jsCast<InternalFunction*>(cell); … … 73 74 visitor.append(thisObject->m_originalName); 74 75 } 76 77 DEFINE_VISIT_CHILDREN_WITH_MODIFIER(JS_EXPORT_PRIVATE, InternalFunction); 75 78 76 79 const String& InternalFunction::name() -
trunk/Source/JavaScriptCore/runtime/InternalFunction.h
r267364 r273138 1 1 /* 2 2 * Copyright (C) 1999-2000 Harri Porten (porten@kde.org) 3 * Copyright (C) 2003-20 19Apple Inc. All rights reserved.3 * Copyright (C) 2003-2021 Apple Inc. All rights reserved. 4 4 * Copyright (C) 2007 Cameron Zwarich (cwzwarich@uwaterloo.ca) 5 5 * Copyright (C) 2007 Maks Orlovich … … 47 47 DECLARE_EXPORT_INFO; 48 48 49 JS_EXPORT_PRIVATE static void visitChildren(JSCell*, SlotVisitor&);49 DECLARE_VISIT_CHILDREN_WITH_MODIFIER(JS_EXPORT_PRIVATE); 50 50 51 51 JS_EXPORT_PRIVATE const String& name(); -
trunk/Source/JavaScriptCore/runtime/IntlCollator.cpp
r267102 r273138 2 2 * Copyright (C) 2015 Andy VanWagoner (andy@vanwagoner.family) 3 3 * Copyright (C) 2015 Sukolsak Sakshuwong (sukolsak@gmail.com) 4 * Copyright (C) 2016-202 0Apple Inc. All Rights Reserved.4 * Copyright (C) 2016-2021 Apple Inc. All Rights Reserved. 5 5 * 6 6 * Redistribution and use in source and binary forms, with or without … … 66 66 } 67 67 68 void IntlCollator::visitChildren(JSCell* cell, SlotVisitor& visitor) 68 template<typename Visitor> 69 void IntlCollator::visitChildrenImpl(JSCell* cell, Visitor& visitor) 69 70 { 70 71 IntlCollator* thisObject = jsCast<IntlCollator*>(cell); … … 75 76 visitor.append(thisObject->m_boundCompare); 76 77 } 78 79 DEFINE_VISIT_CHILDREN(IntlCollator); 77 80 78 81 Vector<String> IntlCollator::sortLocaleData(const String& locale, RelevantExtensionKey key) -
trunk/Source/JavaScriptCore/runtime/IntlCollator.h
r266178 r273138 1 1 /* 2 2 * Copyright (C) 2015 Andy VanWagoner (andy@vanwagoner.family) 3 * Copyright (C) 2021 Apple Inc. All Rights Reserved. 3 4 * 4 5 * Redistribution and use in source and binary forms, with or without … … 81 82 IntlCollator(VM&, Structure*); 82 83 void finishCreation(VM&); 83 static void visitChildren(JSCell*, SlotVisitor&);84 DECLARE_VISIT_CHILDREN; 84 85 85 86 bool updateCanDoASCIIUCADUCETComparison() const; -
trunk/Source/JavaScriptCore/runtime/IntlDateTimeFormat.cpp
r271224 r273138 1 1 /* 2 2 * Copyright (C) 2015 Andy VanWagoner (andy@vanwagoner.family) 3 * Copyright (C) 2016-202 0Apple Inc. All rights reserved.3 * Copyright (C) 2016-2021 Apple Inc. All rights reserved. 4 4 * 5 5 * Redistribution and use in source and binary forms, with or without … … 91 91 } 92 92 93 void IntlDateTimeFormat::visitChildren(JSCell* cell, SlotVisitor& visitor) 93 template<typename Visitor> 94 void IntlDateTimeFormat::visitChildrenImpl(JSCell* cell, Visitor& visitor) 94 95 { 95 96 IntlDateTimeFormat* thisObject = jsCast<IntlDateTimeFormat*>(cell); … … 100 101 visitor.append(thisObject->m_boundFormat); 101 102 } 103 104 DEFINE_VISIT_CHILDREN(IntlDateTimeFormat); 102 105 103 106 void IntlDateTimeFormat::setBoundFormat(VM& vm, JSBoundFunction* format) -
trunk/Source/JavaScriptCore/runtime/IntlDateTimeFormat.h
r269706 r273138 1 1 /* 2 2 * Copyright (C) 2015 Andy VanWagoner (andy@vanwagoner.family) 3 * Copyright (C) 2021 Apple Inc. All rights reserved. 3 4 * 4 5 * Redistribution and use in source and binary forms, with or without … … 86 87 IntlDateTimeFormat(VM&, Structure*); 87 88 void finishCreation(VM&); 88 static void visitChildren(JSCell*, SlotVisitor&);89 DECLARE_VISIT_CHILDREN; 89 90 90 91 static Vector<String> localeData(const String&, RelevantExtensionKey); -
trunk/Source/JavaScriptCore/runtime/IntlLocale.cpp
r266973 r273138 1 1 /* 2 2 * Copyright (C) 2020 Sony Interactive Entertainment Inc. 3 * Copyright (C) 2021 Apple Inc. All rights reserved. 3 4 * 4 5 * Redistribution and use in source and binary forms, with or without … … 59 60 } 60 61 61 void IntlLocale::visitChildren(JSCell* cell, SlotVisitor& visitor) 62 template<typename Visitor> 63 void IntlLocale::visitChildrenImpl(JSCell* cell, Visitor& visitor) 62 64 { 63 65 auto* thisObject = jsCast<IntlLocale*>(cell); … … 66 68 Base::visitChildren(thisObject, visitor); 67 69 } 70 71 DEFINE_VISIT_CHILDREN(IntlLocale); 68 72 69 73 class LocaleIDBuilder final { -
trunk/Source/JavaScriptCore/runtime/IntlLocale.h
r266973 r273138 1 1 /* 2 2 * Copyright (C) 2020 Sony Interactive Entertainment Inc. 3 * Copyright (C) 2021 Apple Inc. All rights reserved. 3 4 * 4 5 * Redistribution and use in source and binary forms, with or without … … 72 73 IntlLocale(VM&, Structure*); 73 74 void finishCreation(VM&); 74 static void visitChildren(JSCell*, SlotVisitor&);75 DECLARE_VISIT_CHILDREN; 75 76 76 77 String keywordValue(ASCIILiteral, bool isBoolean = false) const; -
trunk/Source/JavaScriptCore/runtime/IntlNumberFormat.cpp
r267500 r273138 2 2 * Copyright (C) 2015 Andy VanWagoner (andy@vanwagoner.family) 3 3 * Copyright (C) 2016 Sukolsak Sakshuwong (sukolsak@gmail.com) 4 * Copyright (C) 2016-202 0Apple Inc. All rights reserved.4 * Copyright (C) 2016-2021 Apple Inc. All rights reserved. 5 5 * Copyright (C) 2020 Sony Interactive Entertainment Inc. 6 6 * … … 74 74 } 75 75 76 void IntlNumberFormat::visitChildren(JSCell* cell, SlotVisitor& visitor) 76 template<typename Visitor> 77 void IntlNumberFormat::visitChildrenImpl(JSCell* cell, Visitor& visitor) 77 78 { 78 79 IntlNumberFormat* thisObject = jsCast<IntlNumberFormat*>(cell); … … 83 84 visitor.append(thisObject->m_boundFormat); 84 85 } 86 87 DEFINE_VISIT_CHILDREN(IntlNumberFormat); 85 88 86 89 Vector<String> IntlNumberFormat::localeData(const String& locale, RelevantExtensionKey key) -
trunk/Source/JavaScriptCore/runtime/IntlNumberFormat.h
r266655 r273138 2 2 * Copyright (C) 2015 Andy VanWagoner (andy@vanwagoner.family) 3 3 * Copyright (C) 2020 Sony Interactive Entertainment Inc. 4 * Copyright (C) 2021 Apple Inc. All rights reserved. 4 5 * 5 6 * Redistribution and use in source and binary forms, with or without … … 97 98 IntlNumberFormat(VM&, Structure*); 98 99 void finishCreation(VM&); 99 static void visitChildren(JSCell*, SlotVisitor&);100 DECLARE_VISIT_CHILDREN; 100 101 101 102 static Vector<String> localeData(const String&, RelevantExtensionKey); -
trunk/Source/JavaScriptCore/runtime/IntlPluralRules.cpp
r267500 r273138 1 1 /* 2 2 * Copyright (C) 2018 Andy VanWagoner (andy@vanwagoner.family) 3 * Copyright (C) 2019-202 0Apple Inc. All rights reserved.3 * Copyright (C) 2019-2021 Apple Inc. All rights reserved. 4 4 * 5 5 * Redistribution and use in source and binary forms, with or without … … 62 62 } 63 63 64 void IntlPluralRules::visitChildren(JSCell* cell, SlotVisitor& visitor) 64 template<typename Visitor> 65 void IntlPluralRules::visitChildrenImpl(JSCell* cell, Visitor& visitor) 65 66 { 66 67 IntlPluralRules* thisObject = jsCast<IntlPluralRules*>(cell); … … 69 70 Base::visitChildren(thisObject, visitor); 70 71 } 72 73 DEFINE_VISIT_CHILDREN(IntlPluralRules); 71 74 72 75 Vector<String> IntlPluralRules::localeData(const String&, RelevantExtensionKey) -
trunk/Source/JavaScriptCore/runtime/IntlPluralRules.h
r266031 r273138 1 1 /* 2 2 * Copyright (C) 2018 Andy VanWagoner (andy@vanwagoner.family) 3 * Copyright (C) 2021 Apple Inc. All rights reserved. 3 4 * 4 5 * Redistribution and use in source and binary forms, with or without … … 67 68 IntlPluralRules(VM&, Structure*); 68 69 void finishCreation(VM&); 69 static void visitChildren(JSCell*, SlotVisitor&);70 DECLARE_VISIT_CHILDREN; 70 71 71 72 static Vector<String> localeData(const String&, RelevantExtensionKey); -
trunk/Source/JavaScriptCore/runtime/IntlRelativeTimeFormat.cpp
r266341 r273138 1 1 /* 2 2 * Copyright (C) 2020 Sony Interactive Entertainment Inc. 3 * Copyright (C) 2021 Apple Inc. All rights reserved. 3 4 * 4 5 * Redistribution and use in source and binary forms, with or without … … 63 64 } 64 65 65 void IntlRelativeTimeFormat::visitChildren(JSCell* cell, SlotVisitor& visitor) 66 template<typename Visitor> 67 void IntlRelativeTimeFormat::visitChildrenImpl(JSCell* cell, Visitor& visitor) 66 68 { 67 69 auto* thisObject = jsCast<IntlRelativeTimeFormat*>(cell); … … 70 72 Base::visitChildren(thisObject, visitor); 71 73 } 74 75 DEFINE_VISIT_CHILDREN(IntlRelativeTimeFormat); 72 76 73 77 Vector<String> IntlRelativeTimeFormat::localeData(const String& locale, RelevantExtensionKey key) -
trunk/Source/JavaScriptCore/runtime/IntlRelativeTimeFormat.h
r266031 r273138 1 1 /* 2 2 * Copyright (C) 2020 Sony Interactive Entertainment Inc. 3 * Copyright (C) 2020 Apple Inc. All rights reserved.3 * Copyright (C) 2020-2021 Apple Inc. All rights reserved. 4 4 * 5 5 * Redistribution and use in source and binary forms, with or without … … 65 65 IntlRelativeTimeFormat(VM&, Structure*); 66 66 void finishCreation(VM&); 67 static void visitChildren(JSCell*, SlotVisitor&);67 DECLARE_VISIT_CHILDREN; 68 68 69 69 static Vector<String> localeData(const String&, RelevantExtensionKey); -
trunk/Source/JavaScriptCore/runtime/IntlSegmentIterator.cpp
r266032 r273138 1 1 /* 2 2 * Copyright (C) 2020 Apple Inc. All rights reserved. 3 * Copyright (C) 2021 Apple Inc. All rights reserved. 3 4 * 4 5 * Redistribution and use in source and binary forms, with or without … … 65 66 } 66 67 67 void IntlSegmentIterator::visitChildren(JSCell* cell, SlotVisitor& visitor) 68 template<typename Visitor> 69 void IntlSegmentIterator::visitChildrenImpl(JSCell* cell, Visitor& visitor) 68 70 { 69 71 auto* thisObject = jsCast<IntlSegmentIterator*>(cell); … … 71 73 visitor.append(thisObject->m_string); 72 74 } 75 76 DEFINE_VISIT_CHILDREN(IntlSegmentIterator); 73 77 74 78 JSObject* IntlSegmentIterator::next(JSGlobalObject* globalObject) -
trunk/Source/JavaScriptCore/runtime/IntlSegmentIterator.h
r266032 r273138 1 1 /* 2 2 * Copyright (C) 2020 Apple Inc. All rights reserved. 3 * Copyright (C) 2021 Apple Inc. All rights reserved. 3 4 * 4 5 * Redistribution and use in source and binary forms, with or without … … 54 55 JSObject* next(JSGlobalObject*); 55 56 56 static void visitChildren(JSCell*, SlotVisitor&);57 DECLARE_VISIT_CHILDREN; 57 58 58 59 private: -
trunk/Source/JavaScriptCore/runtime/IntlSegments.cpp
r272471 r273138 1 1 /* 2 2 * Copyright (C) 2020 Apple Inc. All rights reserved. 3 * Copyright (C) 2021 Apple Inc. All rights reserved. 3 4 * 4 5 * Redistribution and use in source and binary forms, with or without … … 110 111 } 111 112 112 void IntlSegments::visitChildren(JSCell* cell, SlotVisitor& visitor) 113 template<typename Visitor> 114 void IntlSegments::visitChildrenImpl(JSCell* cell, Visitor& visitor) 113 115 { 114 116 auto* thisObject = jsCast<IntlSegments*>(cell); … … 117 119 } 118 120 121 DEFINE_VISIT_CHILDREN(IntlSegments); 122 119 123 } // namespace JSC -
trunk/Source/JavaScriptCore/runtime/IntlSegments.h
r266032 r273138 1 1 /* 2 2 * Copyright (C) 2020 Apple Inc. All rights reserved. 3 * Copyright (C) 2021 Apple Inc. All rights reserved. 3 4 * 4 5 * Redistribution and use in source and binary forms, with or without … … 55 56 JSObject* createSegmentIterator(JSGlobalObject*); 56 57 57 static void visitChildren(JSCell*, SlotVisitor&);58 DECLARE_VISIT_CHILDREN; 58 59 59 60 private: -
trunk/Source/JavaScriptCore/runtime/JSArrayBufferView.cpp
r272187 r273138 1 1 /* 2 * Copyright (C) 2013-202 0Apple Inc. All rights reserved.2 * Copyright (C) 2013-2021 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 156 156 } 157 157 158 void JSArrayBufferView::visitChildren(JSCell* cell, SlotVisitor& visitor) 158 template<typename Visitor> 159 void JSArrayBufferView::visitChildrenImpl(JSCell* cell, Visitor& visitor) 159 160 { 160 161 JSArrayBufferView* thisObject = jsCast<JSArrayBufferView*>(cell); … … 169 170 } 170 171 } 172 173 DEFINE_VISIT_CHILDREN(JSArrayBufferView); 171 174 172 175 bool JSArrayBufferView::put( -
trunk/Source/JavaScriptCore/runtime/JSArrayBufferView.h
r272170 r273138 1 1 /* 2 * Copyright (C) 2013-202 0Apple Inc. All rights reserved.2 * Copyright (C) 2013-2021 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 173 173 static bool put(JSCell*, JSGlobalObject*, PropertyName, JSValue, PutPropertySlot&); 174 174 175 static void visitChildren(JSCell*, SlotVisitor&);175 DECLARE_VISIT_CHILDREN; 176 176 177 177 public: -
trunk/Source/JavaScriptCore/runtime/JSArrayIterator.cpp
r261895 r273138 1 1 /* 2 * Copyright (C) 2020 Apple Inc. All rights reserved.2 * Copyright (C) 2020-2021 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 69 69 } 70 70 71 void JSArrayIterator::visitChildren(JSCell* cell, SlotVisitor& visitor) 71 template<typename Visitor> 72 void JSArrayIterator::visitChildrenImpl(JSCell* cell, Visitor& visitor) 72 73 { 73 74 auto* thisObject = jsCast<JSArrayIterator*>(cell); … … 76 77 } 77 78 79 DEFINE_VISIT_CHILDREN(JSArrayIterator); 80 78 81 } // namespace JSC -
trunk/Source/JavaScriptCore/runtime/JSArrayIterator.h
r272638 r273138 1 1 /* 2 * Copyright (C) 2020 Apple Inc. All rights reserved.2 * Copyright (C) 2020-2021 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 79 79 DECLARE_INFO; 80 80 81 static void visitChildren(JSCell*, SlotVisitor&);81 DECLARE_VISIT_CHILDREN; 82 82 83 83 private: -
trunk/Source/JavaScriptCore/runtime/JSAsyncGenerator.cpp
r261895 r273138 1 1 /* 2 * Copyright (C) 2019 Apple Inc. All rights reserved.2 * Copyright (C) 2019-2021 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 60 60 } 61 61 62 void JSAsyncGenerator::visitChildren(JSCell* cell, SlotVisitor& visitor) 62 template<typename Visitor> 63 void JSAsyncGenerator::visitChildrenImpl(JSCell* cell, Visitor& visitor) 63 64 { 64 65 auto* thisObject = jsCast<JSAsyncGenerator*>(cell); … … 67 68 } 68 69 70 DEFINE_VISIT_CHILDREN(JSAsyncGenerator); 71 69 72 } // namespace JSC -
trunk/Source/JavaScriptCore/runtime/JSAsyncGenerator.h
r260415 r273138 1 1 /* 2 * Copyright (C) 2019 Apple Inc. All rights reserved.2 * Copyright (C) 2019-2021 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 96 96 DECLARE_EXPORT_INFO; 97 97 98 static void visitChildren(JSCell*, SlotVisitor&);98 DECLARE_VISIT_CHILDREN; 99 99 100 100 private: -
trunk/Source/JavaScriptCore/runtime/JSBigInt.cpp
r271217 r273138 1 1 /* 2 2 * Copyright (C) 2017 Caio Lima <ticaiolima@gmail.com> 3 * Copyright (C) 2017-202 0Apple Inc. All rights reserved.3 * Copyright (C) 2017-2021 Apple Inc. All rights reserved. 4 4 * 5 5 * Redistribution and use in source and binary forms, with or without … … 68 68 { } 69 69 70 void JSBigInt::visitChildren(JSCell* cell, SlotVisitor& visitor) 70 template<typename Visitor> 71 void JSBigInt::visitChildrenImpl(JSCell* cell, Visitor& visitor) 71 72 { 72 73 auto* thisObject = jsCast<JSBigInt*>(cell); … … 76 77 visitor.markAuxiliary(data); 77 78 } 79 80 DEFINE_VISIT_CHILDREN(JSBigInt); 78 81 79 82 void JSBigInt::initialize(InitializationType initType) -
trunk/Source/JavaScriptCore/runtime/JSBigInt.h
r272170 r273138 1 1 /* 2 2 * Copyright (C) 2017 Caio Lima <ticaiolima@gmail.com> 3 * Copyright (C) 2019-202 0Apple Inc. All rights reserved.3 * Copyright (C) 2019-2021 Apple Inc. All rights reserved. 4 4 * 5 5 * Redistribution and use in source and binary forms, with or without … … 51 51 friend class CachedBigInt; 52 52 53 static void visitChildren(JSCell*, SlotVisitor&);53 DECLARE_VISIT_CHILDREN; 54 54 55 55 template<typename CellType, SubspaceAccess> -
trunk/Source/JavaScriptCore/runtime/JSBoundFunction.cpp
r267594 r273138 1 1 /* 2 * Copyright (C) 2011 , 2016-2017Apple Inc. All rights reserved.2 * Copyright (C) 2011-2021 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 250 250 } 251 251 252 void JSBoundFunction::visitChildren(JSCell* cell, SlotVisitor& visitor) 252 template<typename Visitor> 253 void JSBoundFunction::visitChildrenImpl(JSCell* cell, Visitor& visitor) 253 254 { 254 255 JSBoundFunction* thisObject = jsCast<JSBoundFunction*>(cell); … … 262 263 } 263 264 265 DEFINE_VISIT_CHILDREN(JSBoundFunction); 266 264 267 } // namespace JSC -
trunk/Source/JavaScriptCore/runtime/JSBoundFunction.h
r267594 r273138 1 1 /* 2 * Copyright (C) 2011-20 18Apple Inc. All rights reserved.2 * Copyright (C) 2011-2021 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 85 85 86 86 void finishCreation(VM&); 87 static void visitChildren(JSCell*, SlotVisitor&);87 DECLARE_VISIT_CHILDREN; 88 88 89 89 WriteBarrier<JSObject> m_targetFunction; -
trunk/Source/JavaScriptCore/runtime/JSCallee.cpp
r261895 r273138 1 1 /* 2 * Copyright (C) 2014 , 2016Apple Inc. All rights reserved.2 * Copyright (C) 2014-2021 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 51 51 } 52 52 53 void JSCallee::visitChildren(JSCell* cell, SlotVisitor& visitor) 53 template<typename Visitor> 54 void JSCallee::visitChildrenImpl(JSCell* cell, Visitor& visitor) 54 55 { 55 56 JSCallee* thisObject = jsCast<JSCallee*>(cell); … … 60 61 } 61 62 63 DEFINE_VISIT_CHILDREN(JSCallee); 64 62 65 } // namespace JSC -
trunk/Source/JavaScriptCore/runtime/JSCallee.h
r253233 r273138 1 1 /* 2 * Copyright (C) 2014 Apple Inc. All rights reserved.2 * Copyright (C) 2014-2021 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 101 101 using Base::finishCreation; 102 102 103 static void visitChildren(JSCell*, SlotVisitor&);103 DECLARE_VISIT_CHILDREN; 104 104 105 105 private: -
trunk/Source/JavaScriptCore/runtime/JSCell.h
r272170 r273138 2 2 * Copyright (C) 1999-2001 Harri Porten (porten@kde.org) 3 3 * Copyright (C) 2001 Peter Kelly (pmk@post.com) 4 * Copyright (C) 2003-20 19Apple Inc. All rights reserved.4 * Copyright (C) 2003-2021 Apple Inc. All rights reserved. 5 5 * 6 6 * This library is free software; you can redistribute it and/or … … 33 33 #include "JSTypeInfo.h" 34 34 #include "SlotVisitor.h" 35 #include "SlotVisitorMacros.h" 35 36 #include "SubspaceAccess.h" 36 37 #include "TypedArrayType.h" … … 168 169 JS_EXPORT_PRIVATE static size_t estimatedSize(JSCell*, VM&); 169 170 170 static void visitChildren(JSCell*, SlotVisitor&);171 static void visitOutputConstraints(JSCell*, SlotVisitor&);171 DECLARE_VISIT_CHILDREN_WITH_MODIFIER(inline); 172 DECLARE_VISIT_OUTPUT_CONSTRAINTS_WITH_MODIFIER(inline); 172 173 173 174 JS_EXPORT_PRIVATE static void analyzeHeap(JSCell*, HeapAnalyzer&); -
trunk/Source/JavaScriptCore/runtime/JSCellInlines.h
r267820 r273138 1 1 /* 2 * Copyright (C) 2012-202 0Apple Inc. All rights reserved.2 * Copyright (C) 2012-2021 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 142 142 } 143 143 144 inline void JSCell::visitChildren(JSCell* cell, SlotVisitor& visitor) 144 template<typename Visitor> 145 void JSCell::visitChildrenImpl(JSCell* cell, Visitor& visitor) 145 146 { 146 147 visitor.appendUnbarriered(cell->structure(visitor.vm())); 147 148 } 148 149 149 inline void JSCell::visitOutputConstraints(JSCell*, SlotVisitor&) 150 { 151 } 150 DEFINE_VISIT_CHILDREN_WITH_MODIFIER(inline, JSCell); 151 152 template<typename Visitor> 153 ALWAYS_INLINE void JSCell::visitOutputConstraintsImpl(JSCell*, Visitor&) 154 { 155 } 156 157 DEFINE_VISIT_OUTPUT_CONSTRAINTS_WITH_MODIFIER(inline, JSCell); 152 158 153 159 ALWAYS_INLINE VM& CallFrame::deprecatedVM() const -
trunk/Source/JavaScriptCore/runtime/JSFinalizationRegistry.cpp
r271781 r273138 1 1 /* 2 * Copyright (C) 2020 Apple, Inc. All rights reserved.2 * Copyright (C) 2020-2021 Apple, Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 27 27 #include "JSFinalizationRegistry.h" 28 28 29 #include "AbstractSlotVisitor.h" 29 30 #include "DeferredWorkTimer.h" 30 31 #include "JSCInlines.h" … … 61 62 } 62 63 63 void JSFinalizationRegistry::visitChildren(JSCell* cell, SlotVisitor& visitor) 64 template<typename Visitor> 65 void JSFinalizationRegistry::visitChildrenImpl(JSCell* cell, Visitor& visitor) 64 66 { 65 67 Base::visitChildren(cell, visitor); … … 81 83 visitor.append(holdings); 82 84 83 size_t totalBufferSizesInBytes = thisObject->m_deadRegistrations.capacity() * sizeof( decltype(thisObject->m_deadRegistrations)::KeyValuePairType);84 totalBufferSizesInBytes += thisObject->m_liveRegistrations.capacity() * sizeof( decltype(thisObject->m_deadRegistrations)::KeyValuePairType);85 size_t totalBufferSizesInBytes = thisObject->m_deadRegistrations.capacity() * sizeof(typename decltype(thisObject->m_deadRegistrations)::KeyValuePairType); 86 totalBufferSizesInBytes += thisObject->m_liveRegistrations.capacity() * sizeof(typename decltype(thisObject->m_deadRegistrations)::KeyValuePairType); 85 87 totalBufferSizesInBytes += thisObject->m_noUnregistrationLive.capacity() * sizeof(decltype(thisObject->m_noUnregistrationLive.takeLast())); 86 88 totalBufferSizesInBytes += thisObject->m_noUnregistrationDead.capacity() * sizeof(decltype(thisObject->m_noUnregistrationLive.takeLast())); 87 89 visitor.vm().heap.reportExtraMemoryVisited(totalBufferSizesInBytes); 88 90 } 91 92 DEFINE_VISIT_CHILDREN(JSFinalizationRegistry); 89 93 90 94 void JSFinalizationRegistry::destroy(JSCell* table) -
trunk/Source/JavaScriptCore/runtime/JSFinalizationRegistry.h
r268271 r273138 1 1 /* 2 * Copyright (C) 2020 Apple, Inc. All rights reserved.2 * Copyright (C) 2020-2021 Apple, Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 71 71 72 72 void finalizeUnconditionally(VM&); 73 static void visitChildren(JSCell*, SlotVisitor&);73 DECLARE_VISIT_CHILDREN; 74 74 static void destroy(JSCell*); 75 75 static constexpr bool needsDestruction = true; -
trunk/Source/JavaScriptCore/runtime/JSFunction.cpp
r272099 r273138 2 2 * Copyright (C) 1999-2002 Harri Porten (porten@kde.org) 3 3 * Copyright (C) 2001 Peter Kelly (pmk@post.com) 4 * Copyright (C) 2003-202 0Apple Inc. All rights reserved.4 * Copyright (C) 2003-2021 Apple Inc. All rights reserved. 5 5 * Copyright (C) 2007 Cameron Zwarich (cwzwarich@uwaterloo.ca) 6 6 * Copyright (C) 2007 Maks Orlovich … … 253 253 } 254 254 255 void JSFunction::visitChildren(JSCell* cell, SlotVisitor& visitor) 255 template<typename Visitor> 256 void JSFunction::visitChildrenImpl(JSCell* cell, Visitor& visitor) 256 257 { 257 258 JSFunction* thisObject = jsCast<JSFunction*>(cell); … … 261 262 visitor.appendUnbarriered(bitwise_cast<JSCell*>(bitwise_cast<uintptr_t>(thisObject->m_executableOrRareData) & ~rareDataTag)); 262 263 } 264 265 DEFINE_VISIT_CHILDREN(JSFunction); 263 266 264 267 CallData JSFunction::getCallData(JSCell* cell) -
trunk/Source/JavaScriptCore/runtime/JSFunction.h
r271269 r273138 1 1 /* 2 2 * Copyright (C) 1999-2000 Harri Porten (porten@kde.org) 3 * Copyright (C) 2003-202 0Apple Inc. All rights reserved.3 * Copyright (C) 2003-2021 Apple Inc. All rights reserved. 4 4 * Copyright (C) 2007 Cameron Zwarich (cwzwarich@uwaterloo.ca) 5 5 * Copyright (C) 2007 Maks Orlovich … … 181 181 static bool deleteProperty(JSCell*, JSGlobalObject*, PropertyName, DeletePropertySlot&); 182 182 183 static void visitChildren(JSCell*, SlotVisitor&);183 DECLARE_VISIT_CHILDREN; 184 184 185 185 private: -
trunk/Source/JavaScriptCore/runtime/JSGenerator.cpp
r261895 r273138 1 1 /* 2 * Copyright (C) 2019 Apple Inc. All rights reserved.2 * Copyright (C) 2019-2021 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 60 60 } 61 61 62 void JSGenerator::visitChildren(JSCell* cell, SlotVisitor& visitor) 62 template<typename Visitor> 63 void JSGenerator::visitChildrenImpl(JSCell* cell, Visitor& visitor) 63 64 { 64 65 auto* thisObject = jsCast<JSGenerator*>(cell); … … 67 68 } 68 69 70 DEFINE_VISIT_CHILDREN(JSGenerator); 71 69 72 } // namespace JSC -
trunk/Source/JavaScriptCore/runtime/JSGenerator.h
r260415 r273138 1 1 /* 2 * Copyright (C) 2019 Apple Inc. All rights reserved.2 * Copyright (C) 2019-2021 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 95 95 DECLARE_EXPORT_INFO; 96 96 97 static void visitChildren(JSCell*, SlotVisitor&);97 DECLARE_VISIT_CHILDREN; 98 98 99 99 private: -
trunk/Source/JavaScriptCore/runtime/JSGenericTypedArrayView.h
r272170 r273138 1 1 /* 2 * Copyright (C) 2013-202 0Apple Inc. All rights reserved.2 * Copyright (C) 2013-2021 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 314 314 315 315 static size_t estimatedSize(JSCell*, VM&); 316 static void visitChildren(JSCell*, SlotVisitor&);316 DECLARE_VISIT_CHILDREN; 317 317 318 318 // Returns true if successful, and false on error; it will throw on error. -
trunk/Source/JavaScriptCore/runtime/JSGenericTypedArrayViewInlines.h
r272170 r273138 1 1 /* 2 * Copyright (C) 2013-20 19Apple Inc. All rights reserved.2 * Copyright (C) 2013-2021 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 518 518 519 519 template<typename Adaptor> 520 void JSGenericTypedArrayView<Adaptor>::visitChildren(JSCell* cell, SlotVisitor& visitor) 520 template<typename Visitor> 521 void JSGenericTypedArrayView<Adaptor>::visitChildrenImpl(JSCell* cell, Visitor& visitor) 521 522 { 522 523 JSGenericTypedArrayView* thisObject = jsCast<JSGenericTypedArrayView*>(cell); … … 556 557 } 557 558 559 DEFINE_VISIT_CHILDREN_WITH_MODIFIER(template<typename Adaptor>, JSGenericTypedArrayView<Adaptor>); 560 558 561 } // namespace JSC -
trunk/Source/JavaScriptCore/runtime/JSGlobalObject.cpp
r273086 r273138 1 1 /* 2 * Copyright (C) 2007-202 0Apple Inc. All rights reserved.2 * Copyright (C) 2007-2021 Apple Inc. All rights reserved. 3 3 * Copyright (C) 2008 Cameron Zwarich (cwzwarich@uwaterloo.ca) 4 4 * … … 1906 1906 } 1907 1907 1908 void JSGlobalObject::visitChildren(JSCell* cell, SlotVisitor& visitor) 1908 template<typename Visitor> 1909 void JSGlobalObject::visitChildrenImpl(JSCell* cell, Visitor& visitor) 1909 1910 { 1910 1911 JSGlobalObject* thisObject = jsCast<JSGlobalObject*>(cell); … … 2077 2078 } 2078 2079 2080 DEFINE_VISIT_CHILDREN_WITH_MODIFIER(JS_EXPORT_PRIVATE, JSGlobalObject); 2081 2079 2082 CallFrame* JSGlobalObject::deprecatedCallFrameForDebugger() 2080 2083 { -
trunk/Source/JavaScriptCore/runtime/JSGlobalObject.h
r273086 r273138 1 1 /* 2 2 * Copyright (C) 2007 Eric Seidel <eric@webkit.org> 3 * Copyright (C) 2007-202 0Apple Inc. All rights reserved.3 * Copyright (C) 2007-2021 Apple Inc. All rights reserved. 4 4 * 5 5 * This library is free software; you can redistribute it and/or … … 620 620 JS_EXPORT_PRIVATE static void destroy(JSCell*); 621 621 622 JS_EXPORT_PRIVATE static void visitChildren(JSCell*, SlotVisitor&);622 DECLARE_VISIT_CHILDREN_WITH_MODIFIER(JS_EXPORT_PRIVATE); 623 623 624 624 JS_EXPORT_PRIVATE static bool getOwnPropertySlot(JSObject*, JSGlobalObject*, PropertyName, PropertySlot&); -
trunk/Source/JavaScriptCore/runtime/JSImmutableButterfly.cpp
r261895 r273138 1 1 /* 2 * Copyright (C) 2018 Apple Inc. All rights reserved.2 * Copyright (C) 2018-2021 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 33 33 const ClassInfo JSImmutableButterfly::s_info = { "Immutable Butterfly", nullptr, nullptr, nullptr, CREATE_METHOD_TABLE(JSImmutableButterfly) }; 34 34 35 void JSImmutableButterfly::visitChildren(JSCell* cell, SlotVisitor& visitor) 35 template<typename Visitor> 36 void JSImmutableButterfly::visitChildrenImpl(JSCell* cell, Visitor& visitor) 36 37 { 37 38 ASSERT_GC_OBJECT_INHERITS(cell, info()); … … 45 46 visitor.appendValuesHidden(butterfly->contiguous().data(), butterfly->publicLength()); 46 47 } 48 49 DEFINE_VISIT_CHILDREN(JSImmutableButterfly); 47 50 48 51 void JSImmutableButterfly::copyToArguments(JSGlobalObject*, JSValue* firstElementDest, unsigned offset, unsigned length) -
trunk/Source/JavaScriptCore/runtime/JSImmutableButterfly.h
r267135 r273138 1 1 /* 2 * Copyright (C) 2018-20 19Apple Inc. All rights reserved.2 * Copyright (C) 2018-2021 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 146 146 } 147 147 148 static void visitChildren(JSCell*, SlotVisitor&);148 DECLARE_VISIT_CHILDREN; 149 149 150 150 void copyToArguments(JSGlobalObject*, JSValue* firstElementDest, unsigned offset, unsigned length); -
trunk/Source/JavaScriptCore/runtime/JSInternalFieldObjectImpl.h
r253588 r273138 1 1 /* 2 * Copyright (C) 2019 Apple Inc. All rights reserved.2 * Copyright (C) 2019-2021 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 67 67 68 68 protected: 69 static void visitChildren(JSCell*, SlotVisitor&);69 DECLARE_VISIT_CHILDREN; 70 70 71 71 JSInternalFieldObjectImpl(VM& vm, Structure* structure) -
trunk/Source/JavaScriptCore/runtime/JSInternalFieldObjectImplInlines.h
r249547 r273138 1 1 /* 2 * Copyright (C) 2019 Apple Inc. All rights reserved.2 * Copyright (C) 2019-2021 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 31 31 32 32 template<unsigned passedNumberOfInternalFields> 33 void JSInternalFieldObjectImpl<passedNumberOfInternalFields>::visitChildren(JSCell* cell, SlotVisitor& visitor) 33 template<typename Visitor> 34 void JSInternalFieldObjectImpl<passedNumberOfInternalFields>::visitChildrenImpl(JSCell* cell, Visitor& visitor) 34 35 { 35 36 auto* thisObject = jsCast<JSInternalFieldObjectImpl*>(cell); … … 39 40 } 40 41 42 DEFINE_VISIT_CHILDREN_WITH_MODIFIER(template<unsigned passedNumberOfInternalFields>, JSInternalFieldObjectImpl<passedNumberOfInternalFields>); 43 41 44 } // namespace JSC -
trunk/Source/JavaScriptCore/runtime/JSLexicalEnvironment.cpp
r271269 r273138 1 1 /* 2 * Copyright (C) 2008-20 19Apple Inc. All rights reserved.2 * Copyright (C) 2008-2021 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 37 37 const ClassInfo JSLexicalEnvironment::s_info = { "JSLexicalEnvironment", &Base::s_info, nullptr, nullptr, CREATE_METHOD_TABLE(JSLexicalEnvironment) }; 38 38 39 void JSLexicalEnvironment::visitChildren(JSCell* cell, SlotVisitor& visitor) 39 template<typename Visitor> 40 void JSLexicalEnvironment::visitChildrenImpl(JSCell* cell, Visitor& visitor) 40 41 { 41 42 auto* thisObject = jsCast<JSLexicalEnvironment*>(cell); … … 44 45 visitor.appendValuesHidden(thisObject->variables(), thisObject->symbolTable()->scopeSize()); 45 46 } 47 48 DEFINE_VISIT_CHILDREN(JSLexicalEnvironment); 46 49 47 50 void JSLexicalEnvironment::analyzeHeap(JSCell* cell, HeapAnalyzer& analyzer) -
trunk/Source/JavaScriptCore/runtime/JSLexicalEnvironment.h
r271269 r273138 1 1 /* 2 * Copyright (C) 2008-202 0Apple Inc. All rights reserved.2 * Copyright (C) 2008-2021 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 135 135 } 136 136 137 static void visitChildren(JSCell*, SlotVisitor&);137 DECLARE_VISIT_CHILDREN; 138 138 static void analyzeHeap(JSCell*, HeapAnalyzer&); 139 139 }; -
trunk/Source/JavaScriptCore/runtime/JSMapIterator.cpp
r261895 r273138 1 1 /* 2 * Copyright (C) 2013-20 17Apple, Inc. All rights reserved.2 * Copyright (C) 2013-2021 Apple, Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 58 58 } 59 59 60 void JSMapIterator::visitChildren(JSCell* cell, SlotVisitor& visitor) 60 template<typename Visitor> 61 void JSMapIterator::visitChildrenImpl(JSCell* cell, Visitor& visitor) 61 62 { 62 63 auto* thisObject = jsCast<JSMapIterator*>(cell); … … 64 65 Base::visitChildren(thisObject, visitor); 65 66 } 67 68 DEFINE_VISIT_CHILDREN(JSMapIterator); 66 69 67 70 JSValue JSMapIterator::createPair(JSGlobalObject* globalObject, JSValue key, JSValue value) -
trunk/Source/JavaScriptCore/runtime/JSMapIterator.h
r260181 r273138 1 1 /* 2 * Copyright (C) 2013 , 2016Apple, Inc. All rights reserved.2 * Copyright (C) 2013-2021 Apple, Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 143 143 void finishCreation(VM&); 144 144 JSValue createPair(JSGlobalObject*, JSValue, JSValue); 145 static void visitChildren(JSCell*, SlotVisitor&);145 DECLARE_VISIT_CHILDREN; 146 146 }; 147 147 STATIC_ASSERT_IS_TRIVIALLY_DESTRUCTIBLE(JSMapIterator); -
trunk/Source/JavaScriptCore/runtime/JSModuleEnvironment.cpp
r271269 r273138 1 1 /* 2 * Copyright (C) 2015-20 19Apple Inc. All rights reserved.2 * Copyright (C) 2015-2021 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 66 66 } 67 67 68 void JSModuleEnvironment::visitChildren(JSCell* cell, SlotVisitor& visitor) 68 template<typename Visitor> 69 void JSModuleEnvironment::visitChildrenImpl(JSCell* cell, Visitor& visitor) 69 70 { 70 71 JSModuleEnvironment* thisObject = jsCast<JSModuleEnvironment*>(cell); … … 74 75 visitor.append(thisObject->moduleRecordSlot()); 75 76 } 77 78 DEFINE_VISIT_CHILDREN(JSModuleEnvironment); 76 79 77 80 bool JSModuleEnvironment::getOwnPropertySlot(JSObject* cell, JSGlobalObject* globalObject, PropertyName propertyName, PropertySlot& slot) -
trunk/Source/JavaScriptCore/runtime/JSModuleEnvironment.h
r271269 r273138 1 1 /* 2 * Copyright (C) 2015-202 0Apple Inc. All rights reserved.2 * Copyright (C) 2015-2021 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 90 90 } 91 91 92 static void visitChildren(JSCell*, SlotVisitor&);92 DECLARE_VISIT_CHILDREN; 93 93 }; 94 94 -
trunk/Source/JavaScriptCore/runtime/JSModuleNamespaceObject.cpp
r271304 r273138 1 1 /* 2 * Copyright (C) 2015-202 0Apple Inc. All rights reserved.2 * Copyright (C) 2015-2021 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 86 86 } 87 87 88 void JSModuleNamespaceObject::visitChildren(JSCell* cell, SlotVisitor& visitor) 88 template<typename Visitor> 89 void JSModuleNamespaceObject::visitChildrenImpl(JSCell* cell, Visitor& visitor) 89 90 { 90 91 JSModuleNamespaceObject* thisObject = jsCast<JSModuleNamespaceObject*>(cell); … … 98 99 } 99 100 } 101 102 DEFINE_VISIT_CHILDREN(JSModuleNamespaceObject); 100 103 101 104 static JSValue getValue(JSModuleEnvironment* environment, PropertyName localName, ScopeOffset& scopeOffset) -
trunk/Source/JavaScriptCore/runtime/JSModuleNamespaceObject.h
r271269 r273138 1 1 /* 2 * Copyright (C) 2015-202 0Apple Inc. All rights reserved.2 * Copyright (C) 2015-2021 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 73 73 JS_EXPORT_PRIVATE JSModuleNamespaceObject(VM&, Structure*); 74 74 JS_EXPORT_PRIVATE void finishCreation(JSGlobalObject*, AbstractModuleRecord*, Vector<std::pair<Identifier, AbstractModuleRecord::Resolution>>&&); 75 static void visitChildren(JSCell*, SlotVisitor&);75 DECLARE_VISIT_CHILDREN; 76 76 bool getOwnPropertySlotCommon(JSGlobalObject*, PropertyName, PropertySlot&); 77 77 -
trunk/Source/JavaScriptCore/runtime/JSModuleRecord.cpp
r267186 r273138 1 1 /* 2 * Copyright (C) 2015-20 19Apple Inc. All rights reserved.2 * Copyright (C) 2015-2021 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 71 71 } 72 72 73 void JSModuleRecord::visitChildren(JSCell* cell, SlotVisitor& visitor) 73 template<typename Visitor> 74 void JSModuleRecord::visitChildrenImpl(JSCell* cell, Visitor& visitor) 74 75 { 75 76 JSModuleRecord* thisObject = jsCast<JSModuleRecord*>(cell); … … 78 79 visitor.append(thisObject->m_moduleProgramExecutable); 79 80 } 81 82 DEFINE_VISIT_CHILDREN(JSModuleRecord); 80 83 81 84 void JSModuleRecord::link(JSGlobalObject* globalObject, JSValue scriptFetcher) -
trunk/Source/JavaScriptCore/runtime/JSModuleRecord.h
r253237 r273138 1 1 /* 2 * Copyright (C) 2015-20 16Apple Inc. All rights reserved.2 * Copyright (C) 2015-2021 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 67 67 void finishCreation(JSGlobalObject*, VM&); 68 68 69 static void visitChildren(JSCell*, SlotVisitor&);69 DECLARE_VISIT_CHILDREN; 70 70 71 71 void instantiateDeclarations(JSGlobalObject*, ModuleProgramExecutable*, JSValue scriptFetcher); -
trunk/Source/JavaScriptCore/runtime/JSNativeStdFunction.cpp
r267594 r273138 1 1 /* 2 * Copyright (C) 2015-20 16Apple Inc. All rights reserved.2 * Copyright (C) 2015-2021 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 42 42 } 43 43 44 void JSNativeStdFunction::visitChildren(JSCell* cell, SlotVisitor& visitor) 44 template<typename Visitor> 45 void JSNativeStdFunction::visitChildrenImpl(JSCell* cell, Visitor& visitor) 45 46 { 46 47 JSNativeStdFunction* thisObject = jsCast<JSNativeStdFunction*>(cell); … … 48 49 Base::visitChildren(thisObject, visitor); 49 50 } 51 52 DEFINE_VISIT_CHILDREN(JSNativeStdFunction); 50 53 51 54 void JSNativeStdFunction::finishCreation(VM& vm, NativeExecutable* executable, unsigned length, const String& name) -
trunk/Source/JavaScriptCore/runtime/JSNativeStdFunction.h
r266210 r273138 1 1 /* 2 * Copyright (C) 2015-20 18Apple Inc. All rights reserved.2 * Copyright (C) 2015-2021 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 66 66 JSNativeStdFunction(VM&, NativeExecutable*, JSGlobalObject*, Structure*, NativeStdFunction&&); 67 67 void finishCreation(VM&, NativeExecutable*, unsigned length, const String& name); 68 static void visitChildren(JSCell*, SlotVisitor&);68 DECLARE_VISIT_CHILDREN; 69 69 70 70 NativeStdFunction m_function; -
trunk/Source/JavaScriptCore/runtime/JSObject.cpp
r272885 r273138 2 2 * Copyright (C) 1999-2001 Harri Porten (porten@kde.org) 3 3 * Copyright (C) 2001 Peter Kelly (pmk@post.com) 4 * Copyright (C) 2003-202 0Apple Inc. All rights reserved.4 * Copyright (C) 2003-2021 Apple Inc. All rights reserved. 5 5 * Copyright (C) 2007 Eric Seidel (eric@webkit.org) 6 6 * … … 74 74 const ClassInfo JSFinalObject::s_info = { "Object", &Base::s_info, nullptr, nullptr, CREATE_METHOD_TABLE(JSFinalObject) }; 75 75 76 ALWAYS_INLINE void JSObject::markAuxiliaryAndVisitOutOfLineProperties(SlotVisitor& visitor, Butterfly* butterfly, Structure* structure, PropertyOffset maxOffset) 76 template<typename Visitor> 77 ALWAYS_INLINE void JSObject::markAuxiliaryAndVisitOutOfLineProperties(Visitor& visitor, Butterfly* butterfly, Structure* structure, PropertyOffset maxOffset) 77 78 { 78 79 // We call this when we found everything without races. … … 105 106 } 106 107 107 ALWAYS_INLINE Structure* JSObject::visitButterfly(SlotVisitor& visitor) 108 template<typename Visitor> 109 ALWAYS_INLINE Structure* JSObject::visitButterfly(Visitor& visitor) 108 110 { 109 111 static const char* const raceReason = "JSObject::visitButterfly"; … … 114 116 } 115 117 116 ALWAYS_INLINE Structure* JSObject::visitButterflyImpl(SlotVisitor& visitor) 118 template<typename Visitor> 119 ALWAYS_INLINE Structure* JSObject::visitButterflyImpl(Visitor& visitor) 117 120 { 118 121 VM& vm = visitor.vm(); … … 414 417 } 415 418 416 void JSObject::visitChildren(JSCell* cell, SlotVisitor& visitor) 419 template<typename Visitor> 420 void JSObject::visitChildrenImpl(JSCell* cell, Visitor& visitor) 417 421 { 418 422 JSObject* thisObject = jsCast<JSObject*>(cell); 419 423 ASSERT_GC_OBJECT_INHERITS(thisObject, info()); 420 #if ASSERT_ENABLED 421 bool wasCheckingForDefaultMarkViolation = visitor.m_isCheckingForDefaultMarkViolation; 422 visitor.m_isCheckingForDefaultMarkViolation = false; 423 #endif 424 424 typename Visitor::DefaultMarkingViolationAssertionScope assertionScope(visitor); 425 425 426 JSCell::visitChildren(thisObject, visitor); 426 427 427 428 thisObject->visitButterfly(visitor); 428 429 #if ASSERT_ENABLED 430 visitor.m_isCheckingForDefaultMarkViolation = wasCheckingForDefaultMarkViolation; 431 #endif 432 } 429 } 430 431 DEFINE_VISIT_CHILDREN_WITH_MODIFIER(JS_EXPORT_PRIVATE, JSObject); 433 432 434 433 void JSObject::analyzeHeap(JSCell* cell, HeapAnalyzer& analyzer) … … 470 469 } 471 470 472 void JSFinalObject::visitChildren(JSCell* cell, SlotVisitor& visitor) 471 template<typename Visitor> 472 void JSFinalObject::visitChildrenImpl(JSCell* cell, Visitor& visitor) 473 473 { 474 474 JSFinalObject* thisObject = jsCast<JSFinalObject*>(cell); 475 475 ASSERT_GC_OBJECT_INHERITS(thisObject, info()); 476 #if ASSERT_ENABLED 477 bool wasCheckingForDefaultMarkViolation = visitor.m_isCheckingForDefaultMarkViolation; 478 visitor.m_isCheckingForDefaultMarkViolation = false; 479 #endif 476 typename Visitor::DefaultMarkingViolationAssertionScope assertionScope(visitor); 480 477 481 478 JSCell::visitChildren(thisObject, visitor); … … 485 482 visitor.appendValuesHidden(thisObject->inlineStorage(), storageSize); 486 483 } 487 488 #if ASSERT_ENABLED 489 visitor.m_isCheckingForDefaultMarkViolation = wasCheckingForDefaultMarkViolation; 490 #endif 491 } 484 } 485 486 DEFINE_VISIT_CHILDREN_WITH_MODIFIER(JS_EXPORT_PRIVATE, JSFinalObject); 492 487 493 488 String JSObject::className(const JSObject* object, VM& vm) -
trunk/Source/JavaScriptCore/runtime/JSObject.h
r272885 r273138 2 2 * Copyright (C) 1999-2001 Harri Porten (porten@kde.org) 3 3 * Copyright (C) 2001 Peter Kelly (pmk@post.com) 4 * Copyright (C) 2003-20 19Apple Inc. All rights reserved.4 * Copyright (C) 2003-2021 Apple Inc. All rights reserved. 5 5 * 6 6 * This library is free software; you can redistribute it and/or … … 109 109 using Base = JSCell; 110 110 111 DECLARE_VISIT_CHILDREN_WITH_MODIFIER(JS_EXPORT_PRIVATE); 112 111 113 JS_EXPORT_PRIVATE static size_t estimatedSize(JSCell*, VM&); 112 JS_EXPORT_PRIVATE static void visitChildren(JSCell*, SlotVisitor&);113 114 JS_EXPORT_PRIVATE static void analyzeHeap(JSCell*, HeapAnalyzer&); 114 115 … … 983 984 984 985 // Visits the butterfly unless there is a race. Returns the structure if there was no race. 985 Structure* visitButterfly(SlotVisitor&);986 template<typename Visitor> Structure* visitButterfly(Visitor&); 986 987 987 Structure* visitButterflyImpl(SlotVisitor&);988 template<typename Visitor> Structure* visitButterflyImpl(Visitor&); 988 989 989 void markAuxiliaryAndVisitOutOfLineProperties(SlotVisitor&, Butterfly*, Structure*, PropertyOffset maxOffset);990 template<typename Visitor> void markAuxiliaryAndVisitOutOfLineProperties(Visitor&, Butterfly*, Structure*, PropertyOffset maxOffset); 990 991 991 992 // Call this if you know that the object is in a mode where it has array … … 1175 1176 }; 1176 1177 1177 class JSFinalObject;1178 1179 1178 // JSFinalObject is a type of JSObject that contains sufficient internal 1180 1179 // storage to fully make use of the collector cell containing it. … … 1215 1214 } 1216 1215 1217 JS_EXPORT_PRIVATE static void visitChildren(JSCell*, SlotVisitor&);1216 DECLARE_VISIT_CHILDREN_WITH_MODIFIER(JS_EXPORT_PRIVATE); 1218 1217 1219 1218 DECLARE_EXPORT_INFO; … … 1221 1220 private: 1222 1221 friend class LLIntOffsetsExtractor; 1223 1224 void visitChildrenCommon(SlotVisitor&);1225 1222 1226 1223 explicit JSFinalObject(VM& vm, Structure* structure, Butterfly* butterfly) -
trunk/Source/JavaScriptCore/runtime/JSPromise.cpp
r272005 r273138 1 1 /* 2 * Copyright (C) 2013-20 17Apple Inc. All rights reserved.2 * Copyright (C) 2013-2021 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 68 68 } 69 69 70 void JSPromise::visitChildren(JSCell* cell, SlotVisitor& visitor) 70 template<typename Visitor> 71 void JSPromise::visitChildrenImpl(JSCell* cell, Visitor& visitor) 71 72 { 72 73 auto* thisObject = jsCast<JSPromise*>(cell); … … 74 75 Base::visitChildren(thisObject, visitor); 75 76 } 77 78 DEFINE_VISIT_CHILDREN(JSPromise); 76 79 77 80 auto JSPromise::status(VM&) const -> Status -
trunk/Source/JavaScriptCore/runtime/JSPromise.h
r272005 r273138 1 1 /* 2 * Copyright (C) 2013 Apple Inc. All rights reserved.2 * Copyright (C) 2013-2021 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 97 97 static DeferredData createDeferredData(JSGlobalObject*, JSPromiseConstructor*); 98 98 99 static void visitChildren(JSCell*, SlotVisitor&);99 DECLARE_VISIT_CHILDREN; 100 100 101 101 protected: -
trunk/Source/JavaScriptCore/runtime/JSPropertyNameEnumerator.cpp
r271305 r273138 1 1 /* 2 * Copyright (C) 2014-20 19Apple Inc. All rights reserved.2 * Copyright (C) 2014-2021 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 71 71 } 72 72 73 void JSPropertyNameEnumerator::visitChildren(JSCell* cell, SlotVisitor& visitor) 73 template<typename Visitor> 74 void JSPropertyNameEnumerator::visitChildrenImpl(JSCell* cell, Visitor& visitor) 74 75 { 75 76 JSPropertyNameEnumerator* thisObject = jsCast<JSPropertyNameEnumerator*>(cell); … … 87 88 } 88 89 } 90 91 DEFINE_VISIT_CHILDREN(JSPropertyNameEnumerator); 89 92 90 93 // FIXME: Assert that properties returned by getOwnPropertyNames() are reported enumerable by getOwnPropertySlot(). -
trunk/Source/JavaScriptCore/runtime/JSPropertyNameEnumerator.h
r271269 r273138 1 1 /* 2 * Copyright (C) 2014-20 19Apple Inc. All rights reserved.2 * Copyright (C) 2014-2021 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 85 85 } 86 86 87 static void visitChildren(JSCell*, SlotVisitor&);87 DECLARE_VISIT_CHILDREN; 88 88 89 89 private: -
trunk/Source/JavaScriptCore/runtime/JSProxy.cpp
r271269 r273138 1 1 /* 2 * Copyright (C) 2011-20 12, 2016-2017Apple Inc. All rights reserved.2 * Copyright (C) 2011-2021 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 36 36 const ClassInfo JSProxy::s_info = { "JSProxy", &Base::s_info, nullptr, nullptr, CREATE_METHOD_TABLE(JSProxy) }; 37 37 38 void JSProxy::visitChildren(JSCell* cell, SlotVisitor& visitor) 38 template<typename Visitor> 39 void JSProxy::visitChildrenImpl(JSCell* cell, Visitor& visitor) 39 40 { 40 41 JSProxy* thisObject = jsCast<JSProxy*>(cell); … … 43 44 visitor.append(thisObject->m_target); 44 45 } 46 47 DEFINE_VISIT_CHILDREN_WITH_MODIFIER(JS_EXPORT_PRIVATE, JSProxy); 45 48 46 49 void JSProxy::setTarget(VM& vm, JSGlobalObject* globalObject) -
trunk/Source/JavaScriptCore/runtime/JSProxy.h
r271269 r273138 1 1 /* 2 * Copyright (C) 2011-202 0Apple Inc. All rights reserved.2 * Copyright (C) 2011-2021 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 86 86 } 87 87 88 JS_EXPORT_PRIVATE static void visitChildren(JSCell*, SlotVisitor&);88 DECLARE_VISIT_CHILDREN_WITH_MODIFIER(JS_EXPORT_PRIVATE); 89 89 90 90 JS_EXPORT_PRIVATE static String className(const JSObject*, VM&); -
trunk/Source/JavaScriptCore/runtime/JSScope.cpp
r272580 r273138 1 1 /* 2 * Copyright (C) 2012-202 0Apple Inc. All Rights Reserved.2 * Copyright (C) 2012-2021 Apple Inc. All Rights Reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 40 40 const ClassInfo JSScope::s_info = { "Scope", &Base::s_info, nullptr, nullptr, CREATE_METHOD_TABLE(JSScope) }; 41 41 42 void JSScope::visitChildren(JSCell* cell, SlotVisitor& visitor) 42 template<typename Visitor> 43 void JSScope::visitChildrenImpl(JSCell* cell, Visitor& visitor) 43 44 { 44 45 JSScope* thisObject = jsCast<JSScope*>(cell); … … 47 48 visitor.append(thisObject->m_next); 48 49 } 50 51 DEFINE_VISIT_CHILDREN(JSScope); 49 52 50 53 // Returns true if we found enough information to terminate optimization. -
trunk/Source/JavaScriptCore/runtime/JSScope.h
r272580 r273138 1 1 /* 2 * Copyright (C) 2012-20 19Apple Inc. All Rights Reserved.2 * Copyright (C) 2012-2021 Apple Inc. All Rights Reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 65 65 static void collectClosureVariablesUnderTDZ(JSScope*, TDZEnvironment& result, PrivateNameEnvironment&); 66 66 67 static void visitChildren(JSCell*, SlotVisitor&);67 DECLARE_VISIT_CHILDREN; 68 68 69 69 bool isVarScope(); -
trunk/Source/JavaScriptCore/runtime/JSSegmentedVariableObject.cpp
r272830 r273138 63 63 } 64 64 65 void JSSegmentedVariableObject::visitChildren(JSCell* cell, SlotVisitor& visitor) 65 template<typename Visitor> 66 void JSSegmentedVariableObject::visitChildrenImpl(JSCell* cell, Visitor& visitor) 66 67 { 67 68 JSSegmentedVariableObject* thisObject = jsCast<JSSegmentedVariableObject*>(cell); … … 75 76 visitor.appendHidden(thisObject->m_variables[i]); 76 77 } 78 79 DEFINE_VISIT_CHILDREN_WITH_MODIFIER(JS_EXPORT_PRIVATE, JSSegmentedVariableObject); 77 80 78 81 void JSSegmentedVariableObject::analyzeHeap(JSCell* cell, HeapAnalyzer& analyzer) -
trunk/Source/JavaScriptCore/runtime/JSSegmentedVariableObject.h
r254087 r273138 1 1 /* 2 * Copyright (C) 2012-20 19Apple Inc. All rights reserved.2 * Copyright (C) 2012-2021 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 86 86 // the index of the first one added. 87 87 JS_EXPORT_PRIVATE ScopeOffset addVariables(unsigned numberOfVariablesToAdd, JSValue); 88 89 JS_EXPORT_PRIVATE static void visitChildren(JSCell*, SlotVisitor&);88 89 DECLARE_VISIT_CHILDREN_WITH_MODIFIER(JS_EXPORT_PRIVATE); 90 90 JS_EXPORT_PRIVATE static void analyzeHeap(JSCell*, HeapAnalyzer&); 91 91 -
trunk/Source/JavaScriptCore/runtime/JSSetIterator.cpp
r261895 r273138 1 1 /* 2 * Copyright (C) 2013-20 17Apple, Inc. All rights reserved.2 * Copyright (C) 2013-2021 Apple, Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 58 58 } 59 59 60 void JSSetIterator::visitChildren(JSCell* cell, SlotVisitor& visitor) 60 template<typename Visitor> 61 void JSSetIterator::visitChildrenImpl(JSCell* cell, Visitor& visitor) 61 62 { 62 63 auto* thisObject = jsCast<JSSetIterator*>(cell); … … 64 65 Base::visitChildren(thisObject, visitor); 65 66 } 67 68 DEFINE_VISIT_CHILDREN(JSSetIterator); 66 69 67 70 JSValue JSSetIterator::createPair(JSGlobalObject* globalObject, JSValue key, JSValue value) -
trunk/Source/JavaScriptCore/runtime/JSSetIterator.h
r260181 r273138 1 1 /* 2 * Copyright (C) 2013 , 2016Apple, Inc. All rights reserved.2 * Copyright (C) 2013-2021 Apple, Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 131 131 void finishCreation(VM&); 132 132 JS_EXPORT_PRIVATE JSValue createPair(JSGlobalObject*, JSValue, JSValue); 133 static void visitChildren(JSCell*, SlotVisitor&);133 DECLARE_VISIT_CHILDREN; 134 134 }; 135 135 STATIC_ASSERT_IS_TRIVIALLY_DESTRUCTIBLE(JSSetIterator); -
trunk/Source/JavaScriptCore/runtime/JSString.cpp
r270298 r273138 2 2 * Copyright (C) 1999-2002 Harri Porten (porten@kde.org) 3 3 * Copyright (C) 2001 Peter Kelly (pmk@post.com) 4 * Copyright (C) 2004-20 19Apple Inc. All rights reserved.4 * Copyright (C) 2004-2021 Apple Inc. All rights reserved. 5 5 * 6 6 * This library is free software; you can redistribute it and/or … … 106 106 } 107 107 108 void JSString::visitChildren(JSCell* cell, SlotVisitor& visitor) 108 template<typename Visitor> 109 void JSString::visitChildrenImpl(JSCell* cell, Visitor& visitor) 109 110 { 110 111 JSString* thisObject = asString(cell); … … 144 145 } 145 146 147 DEFINE_VISIT_CHILDREN(JSString); 148 146 149 static constexpr unsigned maxLengthForOnStackResolve = 2048; 147 150 -
trunk/Source/JavaScriptCore/runtime/JSString.h
r270298 r273138 2 2 * Copyright (C) 1999-2001 Harri Porten (porten@kde.org) 3 3 * Copyright (C) 2001 Peter Kelly (pmk@post.com) 4 * Copyright (C) 2003-202 0Apple Inc. All rights reserved.4 * Copyright (C) 2003-2021 Apple Inc. All rights reserved. 5 5 * 6 6 * This library is free software; you can redistribute it and/or … … 218 218 static void dumpToStream(const JSCell*, PrintStream&); 219 219 static size_t estimatedSize(JSCell*, VM&); 220 static void visitChildren(JSCell*, SlotVisitor&);220 DECLARE_VISIT_CHILDREN; 221 221 222 222 ALWAYS_INLINE bool isRope() const -
trunk/Source/JavaScriptCore/runtime/JSStringIterator.cpp
r261895 r273138 1 1 /* 2 2 * Copyright (C) 2015 Yusuke Suzuki <utatane.tea@gmail.com>. 3 * Copyright (C) 2016 Apple Inc. All rights reserved.3 * Copyright (C) 2016-2021 Apple Inc. All rights reserved. 4 4 * 5 5 * Redistribution and use in source and binary forms, with or without … … 52 52 } 53 53 54 void JSStringIterator::visitChildren(JSCell* cell, SlotVisitor& visitor) 54 template<typename Visitor> 55 void JSStringIterator::visitChildrenImpl(JSCell* cell, Visitor& visitor) 55 56 { 56 57 auto* thisObject = jsCast<JSStringIterator*>(cell); … … 59 60 } 60 61 62 DEFINE_VISIT_CHILDREN(JSStringIterator); 63 61 64 } // namespace JSC -
trunk/Source/JavaScriptCore/runtime/JSStringIterator.h
r254447 r273138 1 1 /* 2 2 * Copyright (C) 2015 Yusuke Suzuki <utatane.tea@gmail.com>. 3 * Copyright (C) 2021 Apple Inc. All rights reserved. 3 4 * 4 5 * Redistribution and use in source and binary forms, with or without … … 80 81 JSStringIterator* clone(JSGlobalObject*); 81 82 82 static void visitChildren(JSCell*, SlotVisitor&);83 DECLARE_VISIT_CHILDREN; 83 84 84 85 private: -
trunk/Source/JavaScriptCore/runtime/JSSymbolTableObject.cpp
r271269 r273138 1 1 /* 2 * Copyright (C) 2012-20 19Apple Inc. All rights reserved.2 * Copyright (C) 2012-2021 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 37 37 const ClassInfo JSSymbolTableObject::s_info = { "SymbolTableObject", &Base::s_info, nullptr, nullptr, CREATE_METHOD_TABLE(JSSymbolTableObject) }; 38 38 39 void JSSymbolTableObject::visitChildren(JSCell* cell, SlotVisitor& visitor) 39 template<typename Visitor> 40 void JSSymbolTableObject::visitChildrenImpl(JSCell* cell, Visitor& visitor) 40 41 { 41 42 JSSymbolTableObject* thisObject = jsCast<JSSymbolTableObject*>(cell); … … 44 45 visitor.append(thisObject->m_symbolTable); 45 46 } 47 48 DEFINE_VISIT_CHILDREN(JSSymbolTableObject); 46 49 47 50 bool JSSymbolTableObject::deleteProperty(JSCell* cell, JSGlobalObject* globalObject, PropertyName propertyName, DeletePropertySlot& slot) -
trunk/Source/JavaScriptCore/runtime/JSSymbolTableObject.h
r271269 r273138 1 1 /* 2 * Copyright (C) 2012-202 0Apple Inc. All rights reserved.2 * Copyright (C) 2012-2021 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 71 71 } 72 72 73 static void visitChildren(JSCell*, SlotVisitor&);73 DECLARE_VISIT_CHILDREN; 74 74 75 75 private: -
trunk/Source/JavaScriptCore/runtime/JSWeakObjectRef.cpp
r261895 r273138 1 1 /* 2 * Copyright (C) 2019 Apple, Inc. All rights reserved.2 * Copyright (C) 2019-2021 Apple, Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 40 40 } 41 41 42 void JSWeakObjectRef::visitChildren(JSCell* cell, SlotVisitor& visitor) 42 template<typename Visitor> 43 void JSWeakObjectRef::visitChildrenImpl(JSCell* cell, Visitor& visitor) 43 44 { 44 45 auto* thisObject = jsCast<JSWeakObjectRef*>(cell); … … 52 53 } 53 54 55 DEFINE_VISIT_CHILDREN(JSWeakObjectRef); 56 54 57 void JSWeakObjectRef::finalizeUnconditionally(VM& vm) 55 58 { -
trunk/Source/JavaScriptCore/runtime/JSWeakObjectRef.h
r261159 r273138 1 1 /* 2 * Copyright (C) 2019 Apple, Inc. All rights reserved.2 * Copyright (C) 2019-2021 Apple, Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 66 66 67 67 void finalizeUnconditionally(VM&); 68 static void visitChildren(JSCell*, SlotVisitor&);68 DECLARE_VISIT_CHILDREN; 69 69 70 70 private: -
trunk/Source/JavaScriptCore/runtime/JSWithScope.cpp
r261895 r273138 1 1 /* 2 * Copyright (C) 2012 , 2016Apple Inc. All Rights Reserved.2 * Copyright (C) 2012-2021 Apple Inc. All Rights Reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 42 42 } 43 43 44 void JSWithScope::visitChildren(JSCell* cell, SlotVisitor& visitor) 44 template<typename Visitor> 45 void JSWithScope::visitChildrenImpl(JSCell* cell, Visitor& visitor) 45 46 { 46 47 JSWithScope* thisObject = jsCast<JSWithScope*>(cell); … … 49 50 visitor.append(thisObject->m_object); 50 51 } 52 53 DEFINE_VISIT_CHILDREN(JSWithScope); 51 54 52 55 Structure* JSWithScope::createStructure(VM& vm, JSGlobalObject* globalObject, JSValue proto) -
trunk/Source/JavaScriptCore/runtime/JSWithScope.h
r253598 r273138 1 1 /* 2 * Copyright (C) 2012 , 2016Apple Inc. All Rights Reserved.2 * Copyright (C) 2012-2021 Apple Inc. All Rights Reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 44 44 JSObject* object() { return m_object.get(); } 45 45 46 static void visitChildren(JSCell*, SlotVisitor&);46 DECLARE_VISIT_CHILDREN; 47 47 48 48 static Structure* createStructure(VM&, JSGlobalObject*, JSValue proto); -
trunk/Source/JavaScriptCore/runtime/JSWrapperObject.cpp
r261895 r273138 1 1 /* 2 2 * Copyright (C) 2006 Maks Orlovich 3 * Copyright (C) 2006 , 2009, 2012Apple, Inc.3 * Copyright (C) 2006-2021 Apple, Inc. 4 4 * 5 5 * This library is free software; you can redistribute it and/or … … 30 30 STATIC_ASSERT_IS_TRIVIALLY_DESTRUCTIBLE(JSWrapperObject); 31 31 32 void JSWrapperObject::visitChildren(JSCell* cell, SlotVisitor& visitor) 32 template<typename Visitor> 33 void JSWrapperObject::visitChildrenImpl(JSCell* cell, Visitor& visitor) 33 34 { 34 35 auto* thisObject = jsCast<JSWrapperObject*>(cell); … … 37 38 } 38 39 40 DEFINE_VISIT_CHILDREN_WITH_MODIFIER(JS_EXPORT_PRIVATE, JSWrapperObject); 41 39 42 } // namespace JSC -
trunk/Source/JavaScriptCore/runtime/JSWrapperObject.h
r259645 r273138 1 1 /* 2 2 * Copyright (C) 2006 Maks Orlovich 3 * Copyright (C) 2006 , 2007, 2008, 2009Apple Inc. All rights reserved.3 * Copyright (C) 2006-2021 Apple Inc. All rights reserved. 4 4 * 5 5 * This library is free software; you can redistribute it and/or … … 65 65 explicit JSWrapperObject(VM&, Structure*); 66 66 67 JS_EXPORT_PRIVATE static void visitChildren(JSCell*, SlotVisitor&);67 DECLARE_VISIT_CHILDREN_WITH_MODIFIER(JS_EXPORT_PRIVATE); 68 68 }; 69 69 -
trunk/Source/JavaScriptCore/runtime/LazyClassStructure.cpp
r261895 r273138 1 1 /* 2 * Copyright (C) 2016-20 19Apple Inc. All rights reserved.2 * Copyright (C) 2016-2021 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 73 73 } 74 74 75 void LazyClassStructure::visit(SlotVisitor& visitor) 75 template<typename Visitor> 76 void LazyClassStructure::visit(Visitor& visitor) 76 77 { 77 78 m_structure.visit(visitor); 78 79 visitor.append(m_constructor); 79 80 } 81 82 template void LazyClassStructure::visit(AbstractSlotVisitor&); 83 template void LazyClassStructure::visit(SlotVisitor&); 80 84 81 85 void LazyClassStructure::dump(PrintStream& out) const -
trunk/Source/JavaScriptCore/runtime/LazyClassStructure.h
r249538 r273138 1 1 /* 2 * Copyright (C) 2016 Apple Inc. All rights reserved.2 * Copyright (C) 2016-2021 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 118 118 } 119 119 120 void visit(SlotVisitor&);120 template<typename Visitor> void visit(Visitor&); 121 121 122 122 void dump(PrintStream&) const; -
trunk/Source/JavaScriptCore/runtime/LazyProperty.h
r249175 r273138 1 1 /* 2 * Copyright (C) 2016-20 19Apple Inc. All rights reserved.2 * Copyright (C) 2016-2021 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 104 104 void set(VM&, const OwnerType* owner, ElementType*); 105 105 106 void visit(SlotVisitor&);106 template<typename Visitor> void visit(Visitor&); 107 107 108 108 void dump(PrintStream&) const; -
trunk/Source/JavaScriptCore/runtime/LazyPropertyInlines.h
r248027 r273138 1 1 /* 2 * Copyright (C) 2016 Apple Inc. All rights reserved.2 * Copyright (C) 2016-2021 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 67 67 68 68 template<typename OwnerType, typename ElementType> 69 void LazyProperty<OwnerType, ElementType>::visit(SlotVisitor& visitor) 69 template<typename Visitor> 70 void LazyProperty<OwnerType, ElementType>::visit(Visitor& visitor) 70 71 { 71 72 if (m_pointer && !(m_pointer & lazyTag)) -
trunk/Source/JavaScriptCore/runtime/ModuleProgramExecutable.cpp
r261755 r273138 1 1 /* 2 * Copyright (C) 2009 , 2010, 2013, 2015-2016Apple Inc. All rights reserved.2 * Copyright (C) 2009-2021 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 80 80 } 81 81 82 void ModuleProgramExecutable::visitChildren(JSCell* cell, SlotVisitor& visitor) 82 template<typename Visitor> 83 void ModuleProgramExecutable::visitChildrenImpl(JSCell* cell, Visitor& visitor) 83 84 { 84 85 ModuleProgramExecutable* thisObject = jsCast<ModuleProgramExecutable*>(cell); … … 95 96 } 96 97 98 DEFINE_VISIT_CHILDREN(ModuleProgramExecutable); 99 97 100 } // namespace JSC -
trunk/Source/JavaScriptCore/runtime/ModuleProgramExecutable.h
r272580 r273138 1 1 /* 2 * Copyright (C) 2009-20 19Apple Inc. All rights reserved.2 * Copyright (C) 2009-2021 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 78 78 ModuleProgramExecutable(JSGlobalObject*, const SourceCode&); 79 79 80 static void visitChildren(JSCell*, SlotVisitor&);80 DECLARE_VISIT_CHILDREN; 81 81 82 82 WriteBarrier<UnlinkedModuleProgramCodeBlock> m_unlinkedModuleProgramCodeBlock; -
trunk/Source/JavaScriptCore/runtime/Options.cpp
r273034 r273138 1 1 /* 2 * Copyright (C) 2011-202 0Apple Inc. All rights reserved.2 * Copyright (C) 2011-2021 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 559 559 if (Options::usePrivateStaticClassFields()) 560 560 Options::usePrivateClassFields() = true; 561 562 if (Options::verboseVerifyGC()) 563 Options::verifyGC() = true; 561 564 } 562 565 -
trunk/Source/JavaScriptCore/runtime/OptionsList.h
r273125 r273138 370 370 \ 371 371 v(Double, randomIntegrityAuditRate, 0.05, Normal, "Probability of random integrity audits [0.0 - 1.0]") \ 372 v(Bool, verifyGC, false, Normal, nullptr) \ 373 v(Bool, verboseVerifyGC, false, Normal, nullptr) \ 372 374 v(Bool, verifyHeap, false, Normal, nullptr) \ 373 375 v(Unsigned, numberOfGCCyclesToRecordForVerification, 3, Normal, nullptr) \ -
trunk/Source/JavaScriptCore/runtime/ProgramExecutable.cpp
r261755 r273138 1 1 /* 2 * Copyright (C) 2009-20 19Apple Inc. All rights reserved.2 * Copyright (C) 2009-2021 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 209 209 } 210 210 211 void ProgramExecutable::visitChildren(JSCell* cell, SlotVisitor& visitor) 211 template<typename Visitor> 212 void ProgramExecutable::visitChildrenImpl(JSCell* cell, Visitor& visitor) 212 213 { 213 214 ProgramExecutable* thisObject = jsCast<ProgramExecutable*>(cell); … … 223 224 } 224 225 226 DEFINE_VISIT_CHILDREN(ProgramExecutable); 227 225 228 } // namespace JSC -
trunk/Source/JavaScriptCore/runtime/ProgramExecutable.h
r272580 r273138 1 1 /* 2 * Copyright (C) 2009-20 19Apple Inc. All rights reserved.2 * Copyright (C) 2009-2021 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 82 82 ProgramExecutable(JSGlobalObject*, const SourceCode&); 83 83 84 static void visitChildren(JSCell*, SlotVisitor&);84 DECLARE_VISIT_CHILDREN; 85 85 86 86 WriteBarrier<UnlinkedProgramCodeBlock> m_unlinkedProgramCodeBlock; -
trunk/Source/JavaScriptCore/runtime/PropertyMapHashTable.h
r262600 r273138 1 1 /* 2 * Copyright (C) 2004-20 19Apple Inc. All rights reserved.2 * Copyright (C) 2004-2021 Apple Inc. All rights reserved. 3 3 * 4 4 * This library is free software; you can redistribute it and/or … … 134 134 static constexpr bool needsDestruction = true; 135 135 static void destroy(JSCell*); 136 static void visitChildren(JSCell*, SlotVisitor&);136 DECLARE_VISIT_CHILDREN; 137 137 138 138 DECLARE_EXPORT_INFO; -
trunk/Source/JavaScriptCore/runtime/PropertyTable.cpp
r262600 r273138 1 1 /* 2 * Copyright (C) 2013 , 2014Apple Inc. All rights reserved.2 * Copyright (C) 2013-2021 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 119 119 } 120 120 121 void PropertyTable::visitChildren(JSCell* cell, SlotVisitor& visitor) 121 template<typename Visitor> 122 void PropertyTable::visitChildrenImpl(JSCell* cell, Visitor& visitor) 122 123 { 123 124 auto* thisObject = jsCast<PropertyTable*>(cell); … … 126 127 visitor.reportExtraMemoryVisited(thisObject->dataSize()); 127 128 } 129 130 DEFINE_VISIT_CHILDREN(PropertyTable); 128 131 129 132 void PropertyTable::destroy(JSCell* cell) -
trunk/Source/JavaScriptCore/runtime/ProxyObject.cpp
r272838 r273138 1 1 /* 2 * Copyright (C) 2016-202 0Apple Inc. All Rights Reserved.2 * Copyright (C) 2016-2021 Apple Inc. All Rights Reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 1180 1180 } 1181 1181 1182 void ProxyObject::visitChildren(JSCell* cell, SlotVisitor& visitor) 1182 template<typename Visitor> 1183 void ProxyObject::visitChildrenImpl(JSCell* cell, Visitor& visitor) 1183 1184 { 1184 1185 ProxyObject* thisObject = jsCast<ProxyObject*>(cell); … … 1190 1191 } 1191 1192 1193 DEFINE_VISIT_CHILDREN(ProxyObject); 1194 1192 1195 } // namespace JSC -
trunk/Source/JavaScriptCore/runtime/ProxyObject.h
r271269 r273138 1 1 /* 2 * Copyright (C) 2016 Apple Inc. All rights reserved.2 * Copyright (C) 2016-2021 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 92 92 static bool setPrototype(JSObject*, JSGlobalObject*, JSValue prototype, bool shouldThrowIfCantSet); 93 93 static JSValue getPrototype(JSObject*, JSGlobalObject*); 94 static void visitChildren(JSCell*, SlotVisitor&);94 DECLARE_VISIT_CHILDREN; 95 95 96 96 bool getOwnPropertySlotCommon(JSGlobalObject*, PropertyName, PropertySlot&); -
trunk/Source/JavaScriptCore/runtime/ProxyRevoke.cpp
r267594 r273138 1 1 /* 2 * Copyright (C) 2016 Apple Inc. All Rights Reserved.2 * Copyright (C) 2016-2021 Apple Inc. All Rights Reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 70 70 } 71 71 72 void ProxyRevoke::visitChildren(JSCell* cell, SlotVisitor& visitor) 72 template<typename Visitor> 73 void ProxyRevoke::visitChildrenImpl(JSCell* cell, Visitor& visitor) 73 74 { 74 75 ProxyRevoke* thisObject = jsCast<ProxyRevoke*>(cell); … … 79 80 } 80 81 82 DEFINE_VISIT_CHILDREN(ProxyRevoke); 83 81 84 } // namespace JSC -
trunk/Source/JavaScriptCore/runtime/ProxyRevoke.h
r252520 r273138 1 1 /* 2 * Copyright (C) 2016-20 19Apple Inc. All Rights Reserved.2 * Copyright (C) 2016-2021 Apple Inc. All Rights Reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 53 53 54 54 void finishCreation(VM&, ProxyObject*); 55 static void visitChildren(JSCell*, SlotVisitor&);55 DECLARE_VISIT_CHILDREN; 56 56 JSValue proxy() { return m_proxy.get(); } 57 57 void setProxyToNull(VM& vm) { return m_proxy.set(vm, this, jsNull()); } -
trunk/Source/JavaScriptCore/runtime/RegExpCachedResult.cpp
r261755 r273138 1 1 /* 2 * Copyright (C) 2012 , 2016Apple Inc. All rights reserved.2 * Copyright (C) 2012-2021 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 32 32 namespace JSC { 33 33 34 void RegExpCachedResult::visitAggregate(SlotVisitor& visitor) 34 template<typename Visitor> 35 void RegExpCachedResult::visitAggregateImpl(Visitor& visitor) 35 36 { 36 37 visitor.append(m_lastInput); … … 43 44 } 44 45 } 46 47 DEFINE_VISIT_AGGREGATE(RegExpCachedResult); 45 48 46 49 JSArray* RegExpCachedResult::lastResult(JSGlobalObject* globalObject, JSObject* owner) -
trunk/Source/JavaScriptCore/runtime/RegExpCachedResult.h
r251425 r273138 1 1 /* 2 * Copyright (C) 2012 , 2016Apple Inc. All rights reserved.2 * Copyright (C) 2012-2021 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 66 66 } 67 67 68 void visitAggregate(SlotVisitor&);68 DECLARE_VISIT_AGGREGATE; 69 69 70 70 // m_lastRegExp would be nullptr when RegExpCachedResult is not reified. -
trunk/Source/JavaScriptCore/runtime/RegExpGlobalData.cpp
r261755 r273138 1 1 /* 2 * Copyright (C) 2019 Apple Inc. All Rights Reserved.2 * Copyright (C) 2019-2021 Apple Inc. All Rights Reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 31 31 namespace JSC { 32 32 33 void RegExpGlobalData::visitAggregate(SlotVisitor& visitor) 33 template<typename Visitor> 34 void RegExpGlobalData::visitAggregateImpl(Visitor& visitor) 34 35 { 35 36 m_cachedResult.visitAggregate(visitor); 36 37 } 38 39 DEFINE_VISIT_AGGREGATE(RegExpGlobalData); 37 40 38 41 JSValue RegExpGlobalData::getBackref(JSGlobalObject* globalObject, unsigned i) -
trunk/Source/JavaScriptCore/runtime/RegExpGlobalData.h
r259747 r273138 1 1 /* 2 * Copyright (C) 2019 Apple Inc. All Rights Reserved.2 * Copyright (C) 2019-2021 Apple Inc. All Rights Reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 42 42 JSString* input() { return m_cachedResult.input(); } 43 43 44 void visitAggregate(SlotVisitor&);44 DECLARE_VISIT_AGGREGATE; 45 45 46 46 JSValue getBackref(JSGlobalObject*, unsigned); -
trunk/Source/JavaScriptCore/runtime/RegExpObject.cpp
r271269 r273138 1 1 /* 2 2 * Copyright (C) 1999-2000 Harri Porten (porten@kde.org) 3 * Copyright (C) 2003-20 19Apple Inc. All Rights Reserved.3 * Copyright (C) 2003-2021 Apple Inc. All Rights Reserved. 4 4 * 5 5 * This library is free software; you can redistribute it and/or … … 47 47 } 48 48 49 void RegExpObject::visitChildren(JSCell* cell, SlotVisitor& visitor) 49 template<typename Visitor> 50 void RegExpObject::visitChildrenImpl(JSCell* cell, Visitor& visitor) 50 51 { 51 52 RegExpObject* thisObject = jsCast<RegExpObject*>(cell); … … 55 56 visitor.append(thisObject->m_lastIndex); 56 57 } 58 59 DEFINE_VISIT_CHILDREN(RegExpObject); 57 60 58 61 bool RegExpObject::getOwnPropertySlot(JSObject* object, JSGlobalObject* globalObject, PropertyName propertyName, PropertySlot& slot) -
trunk/Source/JavaScriptCore/runtime/RegExpObject.h
r271269 r273138 1 1 /* 2 2 * Copyright (C) 1999-2000 Harri Porten (porten@kde.org) 3 * Copyright (C) 2003-20 19Apple Inc. All Rights Reserved.3 * Copyright (C) 2003-2021 Apple Inc. All Rights Reserved. 4 4 * 5 5 * This library is free software; you can redistribute it and/or … … 134 134 JS_EXPORT_PRIVATE void finishCreation(VM&); 135 135 136 static void visitChildren(JSCell*, SlotVisitor&);136 DECLARE_VISIT_CHILDREN; 137 137 138 138 bool lastIndexIsWritable() const -
trunk/Source/JavaScriptCore/runtime/SamplingProfiler.cpp
r272830 r273138 653 653 } 654 654 655 void SamplingProfiler::visit(SlotVisitor& visitor) 655 template<typename Visitor> 656 void SamplingProfiler::visit(Visitor& visitor) 656 657 { 657 658 RELEASE_ASSERT(m_lock.isLocked()); … … 659 660 visitor.appendUnbarriered(cell); 660 661 } 662 663 template void SamplingProfiler::visit(AbstractSlotVisitor&); 664 template void SamplingProfiler::visit(SlotVisitor&); 661 665 662 666 void SamplingProfiler::shutdown() -
trunk/Source/JavaScriptCore/runtime/SamplingProfiler.h
r266388 r273138 1 1 /* 2 * Copyright (C) 2016 Apple Inc. All rights reserved.2 * Copyright (C) 2016-2021 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 172 172 void noticeVMEntry(); 173 173 void shutdown(); 174 void visit(SlotVisitor&);174 template<typename Visitor> void visit(Visitor&); 175 175 Lock& getLock() { return m_lock; } 176 176 void setTimingInterval(Seconds interval) { m_timingInterval = interval; } -
trunk/Source/JavaScriptCore/runtime/ScopedArguments.cpp
r261755 r273138 1 1 /* 2 * Copyright (C) 2015-20 18Apple Inc. All rights reserved.2 * Copyright (C) 2015-2021 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 99 99 } 100 100 101 void ScopedArguments::visitChildren(JSCell* cell, SlotVisitor& visitor) 101 template<typename Visitor> 102 void ScopedArguments::visitChildrenImpl(JSCell* cell, Visitor& visitor) 102 103 { 103 104 ScopedArguments* thisObject = static_cast<ScopedArguments*>(cell); … … 115 116 } 116 117 } 118 119 DEFINE_VISIT_CHILDREN(ScopedArguments); 117 120 118 121 Structure* ScopedArguments::createStructure(VM& vm, JSGlobalObject* globalObject, JSValue prototype) -
trunk/Source/JavaScriptCore/runtime/ScopedArguments.h
r256087 r273138 1 1 /* 2 * Copyright (C) 2015-20 19Apple Inc. All rights reserved.2 * Copyright (C) 2015-2021 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 64 64 // Creates an arguments object by copying the arguments from a well-defined stack location. 65 65 static ScopedArguments* createByCopyingFrom(VM&, Structure*, Register* argumentsStart, unsigned totalLength, JSFunction* callee, ScopedArgumentsTable*, JSLexicalEnvironment*); 66 67 static void visitChildren(JSCell*, SlotVisitor&);68 66 67 DECLARE_VISIT_CHILDREN; 68 69 69 uint32_t internalLength() const 70 70 { -
trunk/Source/JavaScriptCore/runtime/SimpleTypedArrayController.cpp
r269531 r273138 1 1 /* 2 * Copyright (C) 2013 , 2016Apple Inc. All rights reserved.2 * Copyright (C) 2013-2021 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 63 63 } 64 64 65 bool SimpleTypedArrayController::JSArrayBufferOwner::isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown> handle, void*, JSC:: SlotVisitor& visitor, const char** reason)65 bool SimpleTypedArrayController::JSArrayBufferOwner::isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown> handle, void*, JSC::AbstractSlotVisitor& visitor, const char** reason) 66 66 { 67 67 if (UNLIKELY(reason)) -
trunk/Source/JavaScriptCore/runtime/SimpleTypedArrayController.h
r269531 r273138 1 1 /* 2 * Copyright (C) 2013 Apple Inc. All rights reserved.2 * Copyright (C) 2013-2021 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 59 59 class JSArrayBufferOwner final : public WeakHandleOwner { 60 60 public: 61 bool isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown>, void* context, SlotVisitor&, const char** reason) final;61 bool isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown>, void* context, AbstractSlotVisitor&, const char** reason) final; 62 62 void finalize(JSC::Handle<JSC::Unknown>, void* context) final; 63 63 }; -
trunk/Source/JavaScriptCore/runtime/SmallStrings.cpp
r269531 r273138 1 1 /* 2 * Copyright (C) 2008 , 2010Apple Inc. All Rights Reserved.2 * Copyright (C) 2008-2021 Apple Inc. All Rights Reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 67 67 } 68 68 69 void SmallStrings::visitStrongReferences(SlotVisitor& visitor) 69 template<typename Visitor> 70 void SmallStrings::visitStrongReferences(Visitor& visitor) 70 71 { 71 72 m_needsToBeVisited = false; … … 84 85 visitor.appendUnbarriered(m_okString); 85 86 } 87 88 template void SmallStrings::visitStrongReferences(AbstractSlotVisitor&); 89 template void SmallStrings::visitStrongReferences(SlotVisitor&); 86 90 87 91 SmallStrings::~SmallStrings() -
trunk/Source/JavaScriptCore/runtime/SmallStrings.h
r269531 r273138 1 1 /* 2 * Copyright (C) 2008-20 19Apple Inc. All Rights Reserved.2 * Copyright (C) 2008-2021 Apple Inc. All Rights Reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 52 52 class VM; 53 53 class JSString; 54 class SlotVisitor;55 54 56 55 static constexpr unsigned maxSingleCharacterString = 0xFF; … … 79 78 80 79 void initializeCommonStrings(VM&); 81 void visitStrongReferences(SlotVisitor&);80 template<typename Visitor> void visitStrongReferences(Visitor&); 82 81 83 82 #define JSC_COMMON_STRINGS_ACCESSOR_DEFINITION(name) \ -
trunk/Source/JavaScriptCore/runtime/SparseArrayValueMap.cpp
r262054 r273138 1 1 /* 2 * Copyright (C) 2011-20 17Apple Inc. All rights reserved.2 * Copyright (C) 2011-2021 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 211 211 } 212 212 213 void SparseArrayValueMap::visitChildren(JSCell* cell, SlotVisitor& visitor) 213 template<typename Visitor> 214 void SparseArrayValueMap::visitChildrenImpl(JSCell* cell, Visitor& visitor) 214 215 { 215 216 SparseArrayValueMap* thisObject = jsCast<SparseArrayValueMap*>(cell); … … 224 225 } 225 226 227 DEFINE_VISIT_CHILDREN(SparseArrayValueMap); 228 226 229 } // namespace JSC 227 230 -
trunk/Source/JavaScriptCore/runtime/SparseArrayValueMap.h
r252421 r273138 1 1 /* 2 * Copyright (C) 2011-20 19Apple Inc. All rights reserved.2 * Copyright (C) 2011-2021 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 116 116 static Structure* createStructure(VM&, JSGlobalObject*, JSValue prototype); 117 117 118 static void visitChildren(JSCell*, SlotVisitor&);118 DECLARE_VISIT_CHILDREN; 119 119 120 120 bool sparseMode() -
trunk/Source/JavaScriptCore/runtime/StackFrame.cpp
r272139 r273138 1 1 /* 2 * Copyright (C) 2016-20 19Apple Inc. All rights reserved.2 * Copyright (C) 2016-2021 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 142 142 } 143 143 144 void StackFrame::visitChildren(SlotVisitor& visitor)145 {146 if (m_callee)147 visitor.append(m_callee);148 if (m_codeBlock)149 visitor.append(m_codeBlock);150 }151 152 144 } // namespace JSC 153 145 -
trunk/Source/JavaScriptCore/runtime/StackFrame.h
r251468 r273138 1 1 /* 2 * Copyright (C) 2016-20 17Apple Inc. All rights reserved.2 * Copyright (C) 2016-2021 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 27 27 28 28 #include "Heap.h" 29 #include "SlotVisitorMacros.h" 29 30 #include "VM.h" 30 31 #include "WasmIndexOrName.h" … … 36 37 class CodeBlock; 37 38 class JSObject; 38 class SlotVisitor;39 39 40 40 class StackFrame { … … 58 58 return m_bytecodeIndex; 59 59 } 60 61 void visitChildren(SlotVisitor&); 60 61 template<typename Visitor> 62 void visitAggregate(Visitor& visitor) 63 { 64 if (m_callee) 65 visitor.append(m_callee); 66 if (m_codeBlock) 67 visitor.append(m_codeBlock); 68 } 69 62 70 bool isMarked(VM& vm) const { return (!m_callee || vm.heap.isMarked(m_callee.get())) && (!m_codeBlock || vm.heap.isMarked(m_codeBlock.get())); } 63 71 -
trunk/Source/JavaScriptCore/runtime/Structure.cpp
r272580 r273138 1 1 /* 2 * Copyright (C) 2008-20 19Apple Inc. All rights reserved.2 * Copyright (C) 2008-2021 Apple Inc. All rights reserved. 3 3 * Copyright (C) 2020 Alexey Shvayka <shvaikalesh@gmail.com>. 4 4 * … … 1269 1269 } 1270 1270 1271 void Structure::visitChildren(JSCell* cell, SlotVisitor& visitor) 1271 template<typename Visitor> 1272 void Structure::visitChildrenImpl(JSCell* cell, Visitor& visitor) 1272 1273 { 1273 1274 Structure* thisObject = jsCast<Structure*>(cell); … … 1291 1292 // That's fine, because then the barrier will fire and we will scan this again. 1292 1293 visitor.append(thisObject->m_propertyTableUnsafe); 1293 } else if (visitor. isAnalyzingHeap())1294 } else if (visitor.vm().isAnalyzingHeap()) 1294 1295 visitor.append(thisObject->m_propertyTableUnsafe); 1295 1296 else if (thisObject->m_propertyTableUnsafe) … … 1297 1298 } 1298 1299 1299 bool Structure::isCheapDuringGC(VM& vm) 1300 DEFINE_VISIT_CHILDREN(Structure); 1301 1302 template<typename Visitor> 1303 ALWAYS_INLINE bool Structure::isCheapDuringGC(Visitor& visitor) 1300 1304 { 1301 1305 // FIXME: We could make this even safer by returning false if this structure's property table … … 1303 1307 // https://bugs.webkit.org/show_bug.cgi?id=157334 1304 1308 1305 return (!m_globalObject || v m.heap.isMarked(m_globalObject.get()))1306 && (hasPolyProto() || !storedPrototypeObject() || v m.heap.isMarked(storedPrototypeObject()));1307 } 1308 1309 bool Structure::markIfCheap(SlotVisitor& visitor) 1310 { 1311 VM& vm = visitor.vm(); 1312 if (!isCheapDuringGC(v m))1313 return v m.heap.isMarked(this);1314 1309 return (!m_globalObject || visitor.isMarked(m_globalObject.get())) 1310 && (hasPolyProto() || !storedPrototypeObject() || visitor.isMarked(storedPrototypeObject())); 1311 } 1312 1313 template<typename Visitor> 1314 bool Structure::markIfCheap(Visitor& visitor) 1315 { 1316 if (!isCheapDuringGC(visitor)) 1317 return visitor.isMarked(this); 1318 1315 1319 visitor.appendUnbarriered(this); 1316 1320 return true; 1317 1321 } 1322 1323 template bool Structure::markIfCheap(AbstractSlotVisitor&); 1324 template bool Structure::markIfCheap(SlotVisitor&); 1318 1325 1319 1326 Ref<StructureShape> Structure::toStructureShape(JSValue value, bool& sawPolyProtoStructure) -
trunk/Source/JavaScriptCore/runtime/Structure.h
r272580 r273138 1 1 /* 2 * Copyright (C) 2008-202 0Apple Inc. All rights reserved.2 * Copyright (C) 2008-2021 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 61 61 class StructureChain; 62 62 class StructureShape; 63 class SlotVisitor;64 63 class JSString; 65 64 struct DumpContext; … … 311 310 StructureChain* prototypeChain(VM&, JSGlobalObject*, JSObject* base) const; 312 311 StructureChain* prototypeChain(JSGlobalObject*, JSObject* base) const; 313 static void visitChildren(JSCell*, SlotVisitor&);312 DECLARE_VISIT_CHILDREN; 314 313 315 314 // A Structure is cheap to mark during GC if doing so would only add a small and bounded amount … … 319 318 // returns true if all user-controlled (and hence unbounded in size) objects referenced from the 320 319 // Structure are already marked. 321 bool isCheapDuringGC(VM&);320 template<typename Visitor> bool isCheapDuringGC(Visitor&); 322 321 323 322 // Returns true if this structure is now marked. 324 bool markIfCheap(SlotVisitor&);323 template<typename Visitor> bool markIfCheap(Visitor&); 325 324 326 325 bool hasRareData() const -
trunk/Source/JavaScriptCore/runtime/StructureChain.cpp
r261755 r273138 1 1 /* 2 * Copyright (C) 2008 Apple Inc. All rights reserved.2 * Copyright (C) 2008-2021 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 67 67 } 68 68 69 void StructureChain::visitChildren(JSCell* cell, SlotVisitor& visitor) 69 template<typename Visitor> 70 void StructureChain::visitChildrenImpl(JSCell* cell, Visitor& visitor) 70 71 { 71 72 StructureChain* thisObject = jsCast<StructureChain*>(cell); … … 81 82 } 82 83 84 DEFINE_VISIT_CHILDREN(StructureChain); 85 83 86 } // namespace JSC -
trunk/Source/JavaScriptCore/runtime/StructureChain.h
r253931 r273138 1 1 /* 2 * Copyright (C) 2008-20 19Apple Inc. All rights reserved.2 * Copyright (C) 2008-2021 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 52 52 static StructureChain* create(VM&, JSObject*); 53 53 StructureID* head() { return m_vector.get(); } 54 static void visitChildren(JSCell*, SlotVisitor&);54 DECLARE_VISIT_CHILDREN; 55 55 56 56 static Structure* createStructure(VM& vm, JSGlobalObject* globalObject, JSValue prototype) -
trunk/Source/JavaScriptCore/runtime/StructureRareData.cpp
r266715 r273138 1 1 /* 2 * Copyright (C) 2013-202 0Apple Inc. All rights reserved.2 * Copyright (C) 2013-2021 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 68 68 } 69 69 70 void StructureRareData::visitChildren(JSCell* cell, SlotVisitor& visitor) 70 template<typename Visitor> 71 void StructureRareData::visitChildrenImpl(JSCell* cell, Visitor& visitor) 71 72 { 72 73 StructureRareData* thisObject = jsCast<StructureRareData*>(cell); … … 86 87 } 87 88 } 89 90 DEFINE_VISIT_CHILDREN(StructureRareData); 88 91 89 92 // ----------- Cached special properties helper watchpoint classes ----------- -
trunk/Source/JavaScriptCore/runtime/StructureRareData.h
r266567 r273138 1 1 /* 2 * Copyright (C) 2013-202 0Apple Inc. All rights reserved.2 * Copyright (C) 2013-2021 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 69 69 static void destroy(JSCell*); 70 70 71 static void visitChildren(JSCell*, SlotVisitor&);71 DECLARE_VISIT_CHILDREN; 72 72 73 73 static Structure* createStructure(VM&, JSGlobalObject*, JSValue prototype); -
trunk/Source/JavaScriptCore/runtime/SymbolTable.cpp
r272580 r273138 1 1 /* 2 * Copyright (C) 2012-20 19Apple Inc. All rights reserved.2 * Copyright (C) 2012-2021 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 93 93 } 94 94 95 void SymbolTable::visitChildren(JSCell* thisCell, SlotVisitor& visitor) 95 template<typename Visitor> 96 void SymbolTable::visitChildrenImpl(JSCell* thisCell, Visitor& visitor) 96 97 { 97 98 SymbolTable* thisSymbolTable = jsCast<SymbolTable*>(thisCell); … … 108 109 thisSymbolTable->m_localToEntry = nullptr; 109 110 } 111 112 DEFINE_VISIT_CHILDREN(SymbolTable); 110 113 111 114 const SymbolTable::LocalToEntryVec& SymbolTable::localToEntry(const ConcurrentJSLocker&) -
trunk/Source/JavaScriptCore/runtime/SymbolTable.h
r272580 r273138 1 1 /* 2 * Copyright (C) 2007-202 0Apple Inc. All rights reserved.2 * Copyright (C) 2007-2021 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 734 734 } 735 735 736 static void visitChildren(JSCell*, SlotVisitor&);736 DECLARE_VISIT_CHILDREN; 737 737 738 738 DECLARE_EXPORT_INFO; -
trunk/Source/JavaScriptCore/runtime/TypeProfilerLog.cpp
r261895 r273138 1 1 /* 2 * Copyright (C) 2014-20 19Apple Inc. All rights reserved.2 * Copyright (C) 2014-2021 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 125 125 } 126 126 127 void TypeProfilerLog::visit(SlotVisitor& visitor) 127 // We don't need a SlotVisitor version of this because TypeProfilerLog is only used by 128 // dev tools, and is therefore not on the critical path for performance. 129 void TypeProfilerLog::visit(AbstractSlotVisitor& visitor) 128 130 { 129 131 for (LogEntry* entry = m_logStartPtr; entry != m_currentLogEntryPtr; ++entry) { -
trunk/Source/JavaScriptCore/runtime/TypeProfilerLog.h
r238162 r273138 1 1 /* 2 * Copyright (C) 2014 Apple Inc. All rights reserved.2 * Copyright (C) 2014-2021 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 34 34 namespace JSC { 35 35 36 class AbstractSlotVisitor; 36 37 class TypeLocation; 37 38 … … 60 61 LogEntry* logEndPtr() const { return m_logEndPtr; } 61 62 62 void visit( SlotVisitor&);63 void visit(AbstractSlotVisitor&); 63 64 64 65 static ptrdiff_t logStartOffset() { return OBJECT_OFFSETOF(TypeProfilerLog, m_logStartPtr); } -
trunk/Source/JavaScriptCore/runtime/VM.h
r272885 r273138 1 1 /* 2 * Copyright (C) 2008-202 0Apple Inc. All rights reserved.2 * Copyright (C) 2008-2021 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 122 122 class HandleStack; 123 123 class HasOwnPropertyCache; 124 class HeapAnalyzer; 124 125 class HeapProfiler; 125 126 class Identifier; … … 309 310 HeapProfiler* heapProfiler() const { return m_heapProfiler.get(); } 310 311 JS_EXPORT_PRIVATE HeapProfiler& ensureHeapProfiler(); 312 313 bool isAnalyzingHeap() const { return m_activeHeapAnalyzer; } 314 HeapAnalyzer* activeHeapAnalyzer() const { return m_activeHeapAnalyzer; } 315 void setActiveHeapAnalyzer(HeapAnalyzer* analyzer) { m_activeHeapAnalyzer = analyzer; } 311 316 312 317 #if ENABLE(SAMPLING_PROFILER) … … 1195 1200 private: 1196 1201 bool m_failNextNewCodeBlock { false }; 1197 DeletePropertyMode m_deletePropertyMode { DeletePropertyMode::Default };1198 1202 bool m_globalConstRedeclarationShouldThrow { true }; 1199 1203 bool m_shouldBuildPCToCodeOriginMapping { false }; 1204 DeletePropertyMode m_deletePropertyMode { DeletePropertyMode::Default }; 1205 HeapAnalyzer* m_activeHeapAnalyzer { nullptr }; 1200 1206 std::unique_ptr<CodeCache> m_codeCache; 1201 1207 std::unique_ptr<IntlCache> m_intlCache; -
trunk/Source/JavaScriptCore/runtime/WeakMapImpl.cpp
r267239 r273138 1 1 /* 2 * Copyright (C) 2017 Apple Inc. All rights reserved.2 * Copyright (C) 2017-2021 Apple Inc. All rights reserved. 3 3 * Copyright (C) 2017 Yusuke Suzuki <utatane.tea@gmail.com>. 4 4 * … … 29 29 30 30 #include "AuxiliaryBarrierInlines.h" 31 #include "SlotVisitorInlines.h" 31 32 #include "StructureInlines.h" 32 33 #include "WeakMapImplInlines.h" … … 40 41 } 41 42 42 template <typename WeakMapBucket> 43 void WeakMapImpl<WeakMapBucket>::visitChildren(JSCell* cell, SlotVisitor& visitor) 43 template<typename WeakMapBucket> 44 template<typename Visitor> 45 void WeakMapImpl<WeakMapBucket>::visitChildrenImpl(JSCell* cell, Visitor& visitor) 44 46 { 45 47 WeakMapImpl* thisObject = jsCast<WeakMapImpl*>(cell); … … 48 50 visitor.reportExtraMemoryVisited(thisObject->m_capacity * sizeof(WeakMapBucket)); 49 51 } 52 53 DEFINE_VISIT_CHILDREN_WITH_MODIFIER(template<typename WeakMapBucket>, WeakMapImpl<WeakMapBucket>); 50 54 51 55 template <typename WeakMapBucket> … … 57 61 58 62 template <> 63 template <> 64 void WeakMapImpl<WeakMapBucket<WeakMapBucketDataKey>>::visitOutputConstraints(JSCell*, AbstractSlotVisitor&) 65 { 66 // Only JSWeakMap needs to harvest value references 67 } 68 69 template <> 70 template <> 59 71 void WeakMapImpl<WeakMapBucket<WeakMapBucketDataKey>>::visitOutputConstraints(JSCell*, SlotVisitor&) 60 72 { … … 62 74 } 63 75 64 template <> 65 void WeakMapImpl<WeakMapBucket<WeakMapBucketDataKeyValue>>::visitOutputConstraints(JSCell* cell, SlotVisitor& visitor) 76 template<typename BucketType> 77 template<typename Visitor> 78 ALWAYS_INLINE void WeakMapImpl<BucketType>::visitOutputConstraints(JSCell* cell, Visitor& visitor) 66 79 { 67 VM& vm = visitor.vm(); 80 static_assert(std::is_same<BucketType, WeakMapBucket<WeakMapBucketDataKeyValue>>::value); 81 68 82 auto* thisObject = jsCast<WeakMapImpl*>(cell); 69 83 auto locker = holdLock(thisObject->cellLock()); … … 73 87 if (bucket->isEmpty() || bucket->isDeleted()) 74 88 continue; 75 if (!v m.heap.isMarked(bucket->key()))89 if (!visitor.isMarked(bucket->key())) 76 90 continue; 77 91 bucket->visitAggregate(visitor); 78 92 } 79 93 } 94 95 template void WeakMapImpl<WeakMapBucket<WeakMapBucketDataKeyValue>>::visitOutputConstraints(JSCell*, AbstractSlotVisitor&); 96 template void WeakMapImpl<WeakMapBucket<WeakMapBucketDataKeyValue>>::visitOutputConstraints(JSCell*, SlotVisitor&); 80 97 81 98 template <typename WeakMapBucket> -
trunk/Source/JavaScriptCore/runtime/WeakMapImpl.h
r254087 r273138 1 1 /* 2 * Copyright (C) 2016-20 17Apple Inc. All rights reserved.2 * Copyright (C) 2016-2021 Apple Inc. All rights reserved. 3 3 * Copyright (C) 2017 Yusuke Suzuki <utatane.tea@gmail.com>. 4 4 * … … 145 145 } 146 146 147 template <typename T = Data >148 ALWAYS_INLINE typename std::enable_if<std::is_same<T, WeakMapBucketDataKeyValue>::value>::type visitAggregate( SlotVisitor& visitor)147 template <typename T = Data, typename Visitor> 148 ALWAYS_INLINE typename std::enable_if<std::is_same<T, WeakMapBucketDataKeyValue>::value>::type visitAggregate(Visitor& visitor) 149 149 { 150 150 visitor.append(m_data.value); … … 203 203 static void destroy(JSCell*); 204 204 205 static void visitChildren(JSCell*, SlotVisitor&);205 DECLARE_VISIT_CHILDREN; 206 206 207 207 static size_t estimatedSize(JSCell*, VM&); … … 312 312 } 313 313 314 static void visitOutputConstraints(JSCell*, SlotVisitor&);314 template<typename Visitor> static void visitOutputConstraints(JSCell*, Visitor&); 315 315 void finalizeUnconditionally(VM&); 316 316 317 317 private: 318 template<typename Visitor> 319 ALWAYS_INLINE static void visitOutputConstraintsForDataKeyValue(JSCell*, Visitor&); 320 318 321 ALWAYS_INLINE WeakMapBucketType* findBucket(JSObject* key) 319 322 { -
trunk/Source/JavaScriptCore/tools/JSDollarVM.cpp
r271993 r273138 1 1 /* 2 * Copyright (C) 2015-202 0Apple Inc. All rights reserved.2 * Copyright (C) 2015-2021 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 225 225 void finishCreation(VM&, Root*); 226 226 227 static void visitChildren(JSCell* cell, SlotVisitor& visitor) 228 { 229 DollarVMAssertScope assertScope; 230 Element* thisObject = jsCast<Element*>(cell); 231 ASSERT_GC_OBJECT_INHERITS(thisObject, info()); 232 Base::visitChildren(thisObject, visitor); 233 visitor.append(thisObject->m_root); 234 } 227 DECLARE_VISIT_CHILDREN; 235 228 236 229 static ElementHandleOwner* handleOwner(); … … 248 241 }; 249 242 243 template<typename Visitor> 244 void Element::visitChildrenImpl(JSCell* cell, Visitor& visitor) 245 { 246 DollarVMAssertScope assertScope; 247 Element* thisObject = jsCast<Element*>(cell); 248 ASSERT_GC_OBJECT_INHERITS(thisObject, info()); 249 Base::visitChildren(thisObject, visitor); 250 visitor.append(thisObject->m_root); 251 } 252 253 DEFINE_VISIT_CHILDREN(Element); 254 250 255 class ElementHandleOwner final : public WeakHandleOwner { 251 256 WTF_MAKE_FAST_ALLOCATED; 252 257 public: 253 bool isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown> handle, void*, SlotVisitor& visitor, const char** reason) final258 bool isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown> handle, void*, AbstractSlotVisitor& visitor, const char** reason) final 254 259 { 255 260 DollarVMAssertScope assertScope; … … 305 310 } 306 311 307 static void visitChildren(JSCell* thisObject, SlotVisitor& visitor) 308 { 309 DollarVMAssertScope assertScope; 310 ASSERT_GC_OBJECT_INHERITS(thisObject, info()); 311 Base::visitChildren(thisObject, visitor); 312 visitor.addOpaqueRoot(thisObject); 313 } 312 DECLARE_VISIT_CHILDREN; 314 313 315 314 private: 316 315 Weak<Element> m_element; 317 316 }; 317 318 template<typename Visitor> 319 void Root::visitChildrenImpl(JSCell* thisObject, Visitor& visitor) 320 { 321 DollarVMAssertScope assertScope; 322 ASSERT_GC_OBJECT_INHERITS(thisObject, info()); 323 Base::visitChildren(thisObject, visitor); 324 visitor.addOpaqueRoot(thisObject); 325 } 326 327 DEFINE_VISIT_CHILDREN(Root); 318 328 319 329 class SimpleObject : public JSNonFinalObject { … … 341 351 } 342 352 343 static void visitChildren(JSCell* cell, SlotVisitor& visitor) 344 { 345 DollarVMAssertScope assertScope; 346 SimpleObject* thisObject = jsCast<SimpleObject*>(cell); 347 ASSERT_GC_OBJECT_INHERITS(thisObject, info()); 348 Base::visitChildren(thisObject, visitor); 349 visitor.append(thisObject->m_hiddenValue); 350 } 353 DECLARE_VISIT_CHILDREN; 351 354 352 355 static Structure* createStructure(VM& vm, JSGlobalObject* globalObject, JSValue prototype) … … 380 383 WriteBarrier<JSC::Unknown> m_hiddenValue; 381 384 }; 385 386 template<typename Visitor> 387 void SimpleObject::visitChildrenImpl(JSCell* cell, Visitor& visitor) 388 { 389 DollarVMAssertScope assertScope; 390 SimpleObject* thisObject = jsCast<SimpleObject*>(cell); 391 ASSERT_GC_OBJECT_INHERITS(thisObject, info()); 392 Base::visitChildren(thisObject, visitor); 393 visitor.append(thisObject->m_hiddenValue); 394 } 395 396 DEFINE_VISIT_CHILDREN(SimpleObject); 382 397 383 398 class ImpureGetter : public JSNonFinalObject { … … 437 452 } 438 453 439 static void visitChildren(JSCell* cell, SlotVisitor& visitor) 440 { 441 DollarVMAssertScope assertScope; 442 ASSERT_GC_OBJECT_INHERITS(cell, info()); 443 Base::visitChildren(cell, visitor); 444 ImpureGetter* thisObject = jsCast<ImpureGetter*>(cell); 445 visitor.append(thisObject->m_delegate); 446 } 454 DECLARE_VISIT_CHILDREN; 447 455 448 456 void setDelegate(VM& vm, JSObject* delegate) … … 454 462 WriteBarrier<JSObject> m_delegate; 455 463 }; 464 465 template<typename Visitor> 466 void ImpureGetter::visitChildrenImpl(JSCell* cell, Visitor& visitor) 467 { 468 DollarVMAssertScope assertScope; 469 ASSERT_GC_OBJECT_INHERITS(cell, info()); 470 Base::visitChildren(cell, visitor); 471 ImpureGetter* thisObject = jsCast<ImpureGetter*>(cell); 472 visitor.append(thisObject->m_delegate); 473 } 474 475 DEFINE_VISIT_CHILDREN(ImpureGetter); 456 476 457 477 static JSC_DECLARE_CUSTOM_GETTER(customGetterValueGetter); … … 1823 1843 } 1824 1844 1825 static void visitChildren(JSCell* cell, SlotVisitor& visitor) 1826 { 1827 DollarVMAssertScope assertScope; 1828 auto* thisObject = jsCast<WasmStreamingCompiler*>(cell); 1829 ASSERT_GC_OBJECT_INHERITS(thisObject, info()); 1830 Base::visitChildren(thisObject, visitor); 1831 visitor.append(thisObject->m_promise); 1832 } 1845 DECLARE_VISIT_CHILDREN; 1833 1846 1834 1847 DECLARE_INFO; … … 1837 1850 Ref<Wasm::StreamingCompiler> m_streamingCompiler; 1838 1851 }; 1852 1853 template<typename Visitor> 1854 void WasmStreamingCompiler::visitChildrenImpl(JSCell* cell, Visitor& visitor) 1855 { 1856 DollarVMAssertScope assertScope; 1857 auto* thisObject = jsCast<WasmStreamingCompiler*>(cell); 1858 ASSERT_GC_OBJECT_INHERITS(thisObject, info()); 1859 Base::visitChildren(thisObject, visitor); 1860 visitor.append(thisObject->m_promise); 1861 } 1862 1863 DEFINE_VISIT_CHILDREN(WasmStreamingCompiler); 1839 1864 1840 1865 const ClassInfo WasmStreamingCompiler::s_info = { "WasmStreamingCompiler", &Base::s_info, nullptr, nullptr, CREATE_METHOD_TABLE(WasmStreamingCompiler) }; … … 3700 3725 } 3701 3726 3702 void JSDollarVM::visitChildren(JSCell* cell, SlotVisitor& visitor) 3727 template<typename Visitor> 3728 void JSDollarVM::visitChildrenImpl(JSCell* cell, Visitor& visitor) 3703 3729 { 3704 3730 JSDollarVM* thisObject = jsCast<JSDollarVM*>(cell); … … 3707 3733 } 3708 3734 3735 DEFINE_VISIT_CHILDREN(JSDollarVM); 3736 3709 3737 } // namespace JSC 3710 3738 -
trunk/Source/JavaScriptCore/tools/JSDollarVM.h
r258059 r273138 1 1 /* 2 * Copyright (C) 2015-20 19Apple Inc. All rights reserved.2 * Copyright (C) 2015-2021 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 75 75 void addConstructibleFunction(VM&, JSGlobalObject*, const char* name, NativeFunction, unsigned arguments); 76 76 77 static void visitChildren(JSCell*, SlotVisitor&);77 DECLARE_VISIT_CHILDREN; 78 78 79 79 WriteBarrier<Structure> m_objectDoingSideEffectPutWithoutCorrectSlotStatusStructure; -
trunk/Source/JavaScriptCore/wasm/WasmGlobal.cpp
r271168 r273138 1 1 /* 2 * Copyright (C) 2019 Apple Inc. All rights reserved.2 * Copyright (C) 2019-2021 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 104 104 } 105 105 106 void Global::visitAggregate(SlotVisitor& visitor) 106 template<typename Visitor> 107 void Global::visitAggregateImpl(Visitor& visitor) 107 108 { 108 109 switch (m_type) { … … 118 119 } 119 120 121 DEFINE_VISIT_AGGREGATE(Global); 122 120 123 } } // namespace JSC::Global 121 124 -
trunk/Source/JavaScriptCore/wasm/WasmGlobal.h
r271168 r273138 1 1 /* 2 * Copyright (C) 2017-20 18Apple Inc. All rights reserved.2 * Copyright (C) 2017-2021 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 58 58 uint64_t getPrimitive() const { return m_value.m_primitive; } 59 59 void set(JSGlobalObject*, JSValue); 60 void visitAggregate(SlotVisitor&);60 DECLARE_VISIT_AGGREGATE; 61 61 62 62 template<typename T> T* owner() const { return reinterpret_cast<T*>(m_owner); } -
trunk/Source/JavaScriptCore/wasm/WasmTable.cpp
r272071 r273138 1 1 /* 2 * Copyright (C) 2017-20 19Apple Inc. All rights reserved.2 * Copyright (C) 2017-2021 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 167 167 } 168 168 169 void Table::visitAggregate(SlotVisitor& visitor) 169 template<typename Visitor> 170 void Table::visitAggregateImpl(Visitor& visitor) 170 171 { 171 172 RELEASE_ASSERT(m_owner); … … 174 175 visitor.append(m_jsValues.get()[i]); 175 176 } 177 178 DEFINE_VISIT_AGGREGATE(Table); 176 179 177 180 Type Table::wasmType() const -
trunk/Source/JavaScriptCore/wasm/WasmTable.h
r272071 r273138 1 1 /* 2 * Copyright (C) 2017-20 18Apple Inc. All rights reserved.2 * Copyright (C) 2017-2021 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 81 81 void copy(const Table* srcTable, uint32_t dstIndex, uint32_t srcIndex); 82 82 83 void visitAggregate(SlotVisitor&);83 DECLARE_VISIT_AGGREGATE; 84 84 85 85 protected: -
trunk/Source/JavaScriptCore/wasm/js/JSToWasmICCallee.cpp
r262492 r273138 1 1 /* 2 * Copyright (C) 2019 Apple Inc. All rights reserved.2 * Copyright (C) 2019-2021 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 50 50 } 51 51 52 void JSToWasmICCallee::visitChildren(JSCell* cell, SlotVisitor& visitor) 52 template<typename Visitor> 53 void JSToWasmICCallee::visitChildrenImpl(JSCell* cell, Visitor& visitor) 53 54 { 54 55 JSToWasmICCallee* thisObject = jsCast<JSToWasmICCallee*>(cell); … … 59 60 } 60 61 62 DEFINE_VISIT_CHILDREN(JSToWasmICCallee); 63 61 64 } // namespace JSC 62 65 -
trunk/Source/JavaScriptCore/wasm/js/JSToWasmICCallee.h
r253233 r273138 1 1 /* 2 * Copyright (C) 2019 Apple Inc. All rights reserved.2 * Copyright (C) 2019-2021 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 57 57 : Base(vm, globalObject, structure) 58 58 { } 59 static void visitChildren(JSCell*, SlotVisitor&);59 DECLARE_VISIT_CHILDREN; 60 60 61 61 WriteBarrier<WebAssemblyFunction> m_function; -
trunk/Source/JavaScriptCore/wasm/js/JSWebAssemblyCodeBlock.cpp
r262098 r273138 1 1 /* 2 * Copyright (C) 2017-20 18Apple Inc. All rights reserved.2 * Copyright (C) 2017-2021 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 83 83 } 84 84 85 void JSWebAssemblyCodeBlock::visitChildren(JSCell* cell, SlotVisitor& visitor) 85 template<typename Visitor> 86 void JSWebAssemblyCodeBlock::visitChildrenImpl(JSCell* cell, Visitor& visitor) 86 87 { 87 88 JSWebAssemblyCodeBlock* thisObject = jsCast<JSWebAssemblyCodeBlock*>(cell); … … 90 91 Base::visitChildren(thisObject, visitor); 91 92 } 93 94 DEFINE_VISIT_CHILDREN(JSWebAssemblyCodeBlock); 92 95 93 96 void JSWebAssemblyCodeBlock::finalizeUnconditionally(VM& vm) -
trunk/Source/JavaScriptCore/wasm/js/JSWebAssemblyCodeBlock.h
r264617 r273138 1 1 /* 2 * Copyright (C) 2017-202 0Apple Inc. All rights reserved.2 * Copyright (C) 2017-2021 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 87 87 static constexpr bool needsDestruction = true; 88 88 static void destroy(JSCell*); 89 static void visitChildren(JSCell*, SlotVisitor&);89 DECLARE_VISIT_CHILDREN; 90 90 91 91 Ref<Wasm::CodeBlock> m_codeBlock; -
trunk/Source/JavaScriptCore/wasm/js/JSWebAssemblyGlobal.cpp
r261755 r273138 1 1 /* 2 * Copyright (C) 2019 Apple Inc. All rights reserved.2 * Copyright (C) 2019-2021 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 72 72 } 73 73 74 void JSWebAssemblyGlobal::visitChildren(JSCell* cell, SlotVisitor& visitor) 74 template<typename Visitor> 75 void JSWebAssemblyGlobal::visitChildrenImpl(JSCell* cell, Visitor& visitor) 75 76 { 76 77 JSWebAssemblyGlobal* thisObject = jsCast<JSWebAssemblyGlobal*>(cell); … … 81 82 } 82 83 84 DEFINE_VISIT_CHILDREN(JSWebAssemblyGlobal); 85 83 86 } // namespace JSC 84 87 -
trunk/Source/JavaScriptCore/wasm/js/JSWebAssemblyGlobal.h
r253121 r273138 1 1 /* 2 * Copyright (C) 2019 Apple Inc. All rights reserved.2 * Copyright (C) 2019-2021 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 60 60 JSWebAssemblyGlobal(VM&, Structure*, Ref<Wasm::Global>&&); 61 61 void finishCreation(VM&); 62 static void visitChildren(JSCell*, SlotVisitor&);62 DECLARE_VISIT_CHILDREN; 63 63 64 64 Ref<Wasm::Global> m_global; -
trunk/Source/JavaScriptCore/wasm/js/JSWebAssemblyInstance.cpp
r271112 r273138 1 1 /* 2 * Copyright (C) 2016-20 19Apple Inc. All rights reserved.2 * Copyright (C) 2016-2021 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 74 74 } 75 75 76 void JSWebAssemblyInstance::visitChildren(JSCell* cell, SlotVisitor& visitor) 76 template<typename Visitor> 77 void JSWebAssemblyInstance::visitChildrenImpl(JSCell* cell, Visitor& visitor) 77 78 { 78 79 auto* thisObject = jsCast<JSWebAssemblyInstance*>(cell); … … 102 103 visitor.appendUnbarriered(wrapper.get()); 103 104 } 105 106 DEFINE_VISIT_CHILDREN(JSWebAssemblyInstance); 104 107 105 108 void JSWebAssemblyInstance::finalizeCreation(VM& vm, JSGlobalObject* globalObject, Ref<Wasm::CodeBlock>&& wasmCodeBlock, JSObject* importObject, Wasm::CreationMode creationMode) -
trunk/Source/JavaScriptCore/wasm/js/JSWebAssemblyInstance.h
r271112 r273138 1 1 /* 2 * Copyright (C) 2016-20 19Apple Inc. All rights reserved.2 * Copyright (C) 2016-2021 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 106 106 JSWebAssemblyInstance(VM&, Structure*, Ref<Wasm::Instance>&&); 107 107 void finishCreation(VM&, JSWebAssemblyModule*, WebAssemblyModuleRecord*); 108 static void visitChildren(JSCell*, SlotVisitor&);108 DECLARE_VISIT_CHILDREN; 109 109 110 110 Ref<Wasm::Instance> m_instance; -
trunk/Source/JavaScriptCore/wasm/js/JSWebAssemblyMemory.cpp
r269974 r273138 1 1 /* 2 * Copyright (C) 2016-20 17Apple Inc. All rights reserved.2 * Copyright (C) 2016-2021 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 160 160 } 161 161 162 void JSWebAssemblyMemory::visitChildren(JSCell* cell, SlotVisitor& visitor) 162 template<typename Visitor> 163 void JSWebAssemblyMemory::visitChildrenImpl(JSCell* cell, Visitor& visitor) 163 164 { 164 165 auto* thisObject = jsCast<JSWebAssemblyMemory*>(cell); … … 170 171 } 171 172 173 DEFINE_VISIT_CHILDREN(JSWebAssemblyMemory); 174 172 175 } // namespace JSC 173 176 -
trunk/Source/JavaScriptCore/wasm/js/JSWebAssemblyMemory.h
r269974 r273138 1 1 /* 2 * Copyright (C) 2016-20 19Apple Inc. All rights reserved.2 * Copyright (C) 2016-2021 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 64 64 JSWebAssemblyMemory(VM&, Structure*); 65 65 void finishCreation(VM&); 66 static void visitChildren(JSCell*, SlotVisitor&);66 DECLARE_VISIT_CHILDREN; 67 67 68 68 Ref<Wasm::Memory> m_memory; -
trunk/Source/JavaScriptCore/wasm/js/JSWebAssemblyModule.cpp
r267186 r273138 1 1 /* 2 * Copyright (C) 2016-20 17Apple Inc. All rights reserved.2 * Copyright (C) 2016-2021 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 125 125 } 126 126 127 void JSWebAssemblyModule::visitChildren(JSCell* cell, SlotVisitor& visitor) 127 template<typename Visitor> 128 void JSWebAssemblyModule::visitChildrenImpl(JSCell* cell, Visitor& visitor) 128 129 { 129 130 JSWebAssemblyModule* thisObject = jsCast<JSWebAssemblyModule*>(cell); … … 136 137 } 137 138 139 DEFINE_VISIT_CHILDREN(JSWebAssemblyModule); 140 138 141 } // namespace JSC 139 142 -
trunk/Source/JavaScriptCore/wasm/js/JSWebAssemblyModule.h
r253106 r273138 1 1 /* 2 * Copyright (C) 2016-20 19Apple Inc. All rights reserved.2 * Copyright (C) 2016-2021 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 81 81 JSWebAssemblyModule(VM&, Structure*, Ref<Wasm::Module>&&); 82 82 void finishCreation(VM&); 83 static void visitChildren(JSCell*, SlotVisitor&);83 DECLARE_VISIT_CHILDREN; 84 84 85 85 Ref<Wasm::Module> m_module; -
trunk/Source/JavaScriptCore/wasm/js/JSWebAssemblyTable.cpp
r271303 r273138 1 1 /* 2 * Copyright (C) 2016-20 19Apple Inc. All rights reserved.2 * Copyright (C) 2016-2021 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 73 73 } 74 74 75 void JSWebAssemblyTable::visitChildren(JSCell* cell, SlotVisitor& visitor) 75 template<typename Visitor> 76 void JSWebAssemblyTable::visitChildrenImpl(JSCell* cell, Visitor& visitor) 76 77 { 77 78 JSWebAssemblyTable* thisObject = jsCast<JSWebAssemblyTable*>(cell); … … 81 82 thisObject->table()->visitAggregate(visitor); 82 83 } 84 85 DEFINE_VISIT_CHILDREN(JSWebAssemblyTable); 83 86 84 87 bool JSWebAssemblyTable::grow(uint32_t delta, JSValue defaultValue) -
trunk/Source/JavaScriptCore/wasm/js/JSWebAssemblyTable.h
r271303 r273138 1 1 /* 2 * Copyright (C) 2016-20 19Apple Inc. All rights reserved.2 * Copyright (C) 2016-2021 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 71 71 JSWebAssemblyTable(VM&, Structure*, Ref<Wasm::Table>&&); 72 72 void finishCreation(VM&); 73 static void visitChildren(JSCell*, SlotVisitor&);73 DECLARE_VISIT_CHILDREN; 74 74 75 75 Ref<Wasm::Table> m_table; -
trunk/Source/JavaScriptCore/wasm/js/WebAssemblyFunction.cpp
r271987 r273138 1 1 /* 2 * Copyright (C) 2016-202 0Apple Inc. All rights reserved.2 * Copyright (C) 2016-2021 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 453 453 { } 454 454 455 void WebAssemblyFunction::visitChildren(JSCell* cell, SlotVisitor& visitor) 455 template<typename Visitor> 456 void WebAssemblyFunction::visitChildrenImpl(JSCell* cell, Visitor& visitor) 456 457 { 457 458 WebAssemblyFunction* thisObject = jsCast<WebAssemblyFunction*>(cell); … … 462 463 } 463 464 465 DEFINE_VISIT_CHILDREN(WebAssemblyFunction); 466 464 467 void WebAssemblyFunction::destroy(JSCell* cell) 465 468 { -
trunk/Source/JavaScriptCore/wasm/js/WebAssemblyFunction.h
r271594 r273138 1 1 /* 2 * Copyright (C) 2016-20 19Apple Inc. All rights reserved.2 * Copyright (C) 2016-2021 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 87 87 88 88 private: 89 static void visitChildren(JSCell*, SlotVisitor&);89 DECLARE_VISIT_CHILDREN; 90 90 WebAssemblyFunction(VM&, NativeExecutable*, JSGlobalObject*, Structure*, Wasm::Callee& jsEntrypoint, WasmToWasmImportableFunction::LoadLocation entrypointLoadLocation, Wasm::SignatureIndex); 91 91 -
trunk/Source/JavaScriptCore/wasm/js/WebAssemblyFunctionBase.cpp
r262098 r273138 1 1 /* 2 * Copyright (C) 2017 Apple Inc. All rights reserved.2 * Copyright (C) 2017-2021 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 42 42 { } 43 43 44 void WebAssemblyFunctionBase::visitChildren(JSCell* cell, SlotVisitor& visitor) 44 template<typename Visitor> 45 void WebAssemblyFunctionBase::visitChildrenImpl(JSCell* cell, Visitor& visitor) 45 46 { 46 47 WebAssemblyFunctionBase* thisObject = jsCast<WebAssemblyFunctionBase*>(cell); … … 49 50 visitor.append(thisObject->m_instance); 50 51 } 52 53 DEFINE_VISIT_CHILDREN(WebAssemblyFunctionBase); 51 54 52 55 void WebAssemblyFunctionBase::finishCreation(VM& vm, NativeExecutable* executable, unsigned length, const String& name, JSWebAssemblyInstance* instance) -
trunk/Source/JavaScriptCore/wasm/js/WebAssemblyFunctionBase.h
r253932 r273138 1 1 /* 2 * Copyright (C) 2017-20 18Apple Inc. All rights reserved.2 * Copyright (C) 2017-2021 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 47 47 48 48 protected: 49 static void visitChildren(JSCell*, SlotVisitor&);49 DECLARE_VISIT_CHILDREN; 50 50 void finishCreation(VM&, NativeExecutable*, unsigned length, const String& name, JSWebAssemblyInstance*); 51 51 WebAssemblyFunctionBase(VM&, NativeExecutable*, JSGlobalObject*, Structure*); -
trunk/Source/JavaScriptCore/wasm/js/WebAssemblyModuleRecord.cpp
r271599 r273138 1 1 /* 2 * Copyright (C) 2016-20 19Apple Inc. All rights reserved.2 * Copyright (C) 2016-2021 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 79 79 } 80 80 81 void WebAssemblyModuleRecord::visitChildren(JSCell* cell, SlotVisitor& visitor) 81 template<typename Visitor> 82 void WebAssemblyModuleRecord::visitChildrenImpl(JSCell* cell, Visitor& visitor) 82 83 { 83 84 WebAssemblyModuleRecord* thisObject = jsCast<WebAssemblyModuleRecord*>(cell); … … 88 89 visitor.append(thisObject->m_exportsObject); 89 90 } 91 92 DEFINE_VISIT_CHILDREN(WebAssemblyModuleRecord); 90 93 91 94 void WebAssemblyModuleRecord::prepareLink(VM& vm, JSWebAssemblyInstance* instance) -
trunk/Source/JavaScriptCore/wasm/js/WebAssemblyModuleRecord.h
r271112 r273138 1 1 /* 2 * Copyright (C) 2016-20 19Apple Inc. All rights reserved.2 * Copyright (C) 2016-2021 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 70 70 void finishCreation(JSGlobalObject*, VM&, const Wasm::ModuleInformation&); 71 71 72 static void visitChildren(JSCell*, SlotVisitor&);72 DECLARE_VISIT_CHILDREN; 73 73 74 74 WriteBarrier<JSWebAssemblyInstance> m_instance; -
trunk/Source/JavaScriptCore/wasm/js/WebAssemblyWrapperFunction.cpp
r267594 r273138 1 1 /* 2 * Copyright (C) 2017-20 18Apple Inc. All rights reserved.2 * Copyright (C) 2017-2021 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 68 68 } 69 69 70 void WebAssemblyWrapperFunction::visitChildren(JSCell* cell, SlotVisitor& visitor) 70 template<typename Visitor> 71 void WebAssemblyWrapperFunction::visitChildrenImpl(JSCell* cell, Visitor& visitor) 71 72 { 72 73 WebAssemblyWrapperFunction* thisObject = jsCast<WebAssemblyWrapperFunction*>(cell); … … 76 77 visitor.append(thisObject->m_function); 77 78 } 79 80 DEFINE_VISIT_CHILDREN(WebAssemblyWrapperFunction); 78 81 79 82 JSC_DEFINE_HOST_FUNCTION(callWebAssemblyWrapperFunction, (JSGlobalObject* globalObject, CallFrame* callFrame)) -
trunk/Source/JavaScriptCore/wasm/js/WebAssemblyWrapperFunction.h
r260415 r273138 1 1 /* 2 * Copyright (C) 2017-20 19Apple Inc. All rights reserved.2 * Copyright (C) 2017-2021 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 60 60 WebAssemblyWrapperFunction(VM&, NativeExecutable*, JSGlobalObject*, Structure*, WasmToWasmImportableFunction); 61 61 void finishCreation(VM&, NativeExecutable*, unsigned length, const String& name, JSObject*, JSWebAssemblyInstance*); 62 static void visitChildren(JSCell*, SlotVisitor&);62 DECLARE_VISIT_CHILDREN; 63 63 64 64 WriteBarrier<JSObject> m_function; -
trunk/Source/WebCore/ChangeLog
r273133 r273138 1 2021-02-19 Mark Lam <mark.lam@apple.com> 2 3 Implement a GC verifier. 4 https://bugs.webkit.org/show_bug.cgi?id=217274 5 rdar://56255683 6 7 Reviewed by Filip Pizlo and Saam Barati. 8 9 1. Added support for the GC verifier. 10 2. Also removed NodeFilterCondition::visitAggregate() because it is not used. 11 3. Rebased bindings test results. 12 13 * Modules/indexeddb/IDBObjectStore.cpp: 14 (WebCore::IDBObjectStore::visitReferencedIndexes const): 15 * Modules/indexeddb/IDBObjectStore.h: 16 * Modules/indexeddb/IDBTransaction.cpp: 17 (WebCore::IDBTransaction::visitReferencedObjectStores const): 18 * Modules/indexeddb/IDBTransaction.h: 19 * Modules/webaudio/AudioBuffer.cpp: 20 (WebCore::AudioBuffer::visitChannelWrappers): 21 * Modules/webaudio/AudioBuffer.h: 22 * bindings/js/DOMGCOutputConstraint.cpp: 23 (WebCore::DOMGCOutputConstraint::executeImplImpl): 24 (WebCore::DOMGCOutputConstraint::executeImpl): 25 * bindings/js/DOMGCOutputConstraint.h: 26 * bindings/js/JSAbortControllerCustom.cpp: 27 (WebCore::JSAbortController::visitAdditionalChildren): 28 * bindings/js/JSAbortSignalCustom.cpp: 29 (WebCore::JSAbortSignalOwner::isReachableFromOpaqueRoots): 30 * bindings/js/JSAttrCustom.cpp: 31 (WebCore::JSAttr::visitAdditionalChildren): 32 * bindings/js/JSAudioBufferCustom.cpp: 33 (WebCore::JSAudioBuffer::visitAdditionalChildren): 34 * bindings/js/JSAudioTrackCustom.cpp: 35 (WebCore::JSAudioTrack::visitAdditionalChildren): 36 * bindings/js/JSAudioTrackListCustom.cpp: 37 (WebCore::JSAudioTrackList::visitAdditionalChildren): 38 * bindings/js/JSAudioWorkletProcessorCustom.cpp: 39 (WebCore::JSAudioWorkletProcessor::visitAdditionalChildren): 40 * bindings/js/JSCSSRuleCustom.cpp: 41 (WebCore::JSCSSRule::visitAdditionalChildren): 42 * bindings/js/JSCSSRuleListCustom.cpp: 43 (WebCore::JSCSSRuleListOwner::isReachableFromOpaqueRoots): 44 * bindings/js/JSCSSStyleDeclarationCustom.cpp: 45 (WebCore::JSCSSStyleDeclaration::visitAdditionalChildren): 46 * bindings/js/JSCallbackData.cpp: 47 (WebCore::JSCallbackDataWeak::visitJSFunction): 48 (WebCore::JSCallbackDataWeak::WeakOwner::isReachableFromOpaqueRoots): 49 * bindings/js/JSCallbackData.h: 50 * bindings/js/JSCanvasRenderingContext2DCustom.cpp: 51 (WebCore::JSCanvasRenderingContext2DOwner::isReachableFromOpaqueRoots): 52 (WebCore::JSCanvasRenderingContext2D::visitAdditionalChildren): 53 * bindings/js/JSCustomEventCustom.cpp: 54 (WebCore::JSCustomEvent::visitAdditionalChildren): 55 * bindings/js/JSDOMBuiltinConstructorBase.cpp: 56 (WebCore::JSDOMBuiltinConstructorBase::visitChildrenImpl): 57 (WebCore::JSDOMBuiltinConstructorBase::visitChildren): Deleted. 58 * bindings/js/JSDOMBuiltinConstructorBase.h: 59 * bindings/js/JSDOMGlobalObject.cpp: 60 (WebCore::JSDOMGlobalObject::visitChildrenImpl): 61 (WebCore::JSDOMGlobalObject::visitChildren): Deleted. 62 * bindings/js/JSDOMGlobalObject.h: 63 * bindings/js/JSDOMGuardedObject.h: 64 * bindings/js/JSDOMQuadCustom.cpp: 65 (WebCore::JSDOMQuad::visitAdditionalChildren): 66 * bindings/js/JSDOMWindowCustom.cpp: 67 (WebCore::JSDOMWindow::visitAdditionalChildren): 68 * bindings/js/JSDeprecatedCSSOMValueCustom.cpp: 69 (WebCore::JSDeprecatedCSSOMValueOwner::isReachableFromOpaqueRoots): 70 * bindings/js/JSDocumentCustom.cpp: 71 (WebCore::JSDocument::visitAdditionalChildren): 72 * bindings/js/JSErrorEventCustom.cpp: 73 (WebCore::JSErrorEvent::visitAdditionalChildren): 74 * bindings/js/JSEventListener.cpp: 75 (WebCore::JSEventListener::visitJSFunctionImpl): 76 (WebCore::JSEventListener::visitJSFunction): 77 * bindings/js/JSEventListener.h: 78 * bindings/js/JSEventTargetCustom.cpp: 79 (WebCore::JSEventTarget::visitAdditionalChildren): 80 * bindings/js/JSFetchEventCustom.cpp: 81 (WebCore::JSFetchEvent::visitAdditionalChildren): 82 * bindings/js/JSHTMLCanvasElementCustom.cpp: 83 (WebCore::JSHTMLCanvasElement::visitAdditionalChildren): 84 * bindings/js/JSHTMLTemplateElementCustom.cpp: 85 (WebCore::JSHTMLTemplateElement::visitAdditionalChildren): 86 * bindings/js/JSHistoryCustom.cpp: 87 (WebCore::JSHistory::visitAdditionalChildren): 88 * bindings/js/JSIDBCursorCustom.cpp: 89 (WebCore::JSIDBCursor::visitAdditionalChildren): 90 * bindings/js/JSIDBCursorWithValueCustom.cpp: 91 (WebCore::JSIDBCursorWithValue::visitAdditionalChildren): 92 * bindings/js/JSIDBIndexCustom.cpp: 93 (WebCore::JSIDBIndex::visitAdditionalChildren): 94 * bindings/js/JSIDBObjectStoreCustom.cpp: 95 (WebCore::JSIDBObjectStore::visitAdditionalChildren): 96 * bindings/js/JSIDBRequestCustom.cpp: 97 (WebCore::JSIDBRequest::visitAdditionalChildren): 98 * bindings/js/JSIDBTransactionCustom.cpp: 99 (WebCore::JSIDBTransaction::visitAdditionalChildren): 100 * bindings/js/JSIntersectionObserverCustom.cpp: 101 (WebCore::JSIntersectionObserver::visitAdditionalChildren): 102 * bindings/js/JSIntersectionObserverEntryCustom.cpp: 103 (WebCore::JSIntersectionObserverEntry::visitAdditionalChildren): 104 * bindings/js/JSMessageChannelCustom.cpp: 105 (WebCore::JSMessageChannel::visitAdditionalChildren): 106 * bindings/js/JSMessageEventCustom.cpp: 107 (WebCore::JSMessageEvent::visitAdditionalChildren): 108 * bindings/js/JSMessagePortCustom.cpp: 109 (WebCore::JSMessagePort::visitAdditionalChildren): 110 * bindings/js/JSMutationObserverCustom.cpp: 111 (WebCore::JSMutationObserver::visitAdditionalChildren): 112 (WebCore::JSMutationObserverOwner::isReachableFromOpaqueRoots): 113 * bindings/js/JSMutationRecordCustom.cpp: 114 (WebCore::JSMutationRecord::visitAdditionalChildren): 115 * bindings/js/JSNavigatorCustom.cpp: 116 (WebCore::JSNavigator::visitAdditionalChildren): 117 * bindings/js/JSNodeCustom.cpp: 118 (WebCore::isReachableFromDOM): 119 (WebCore::JSNodeOwner::isReachableFromOpaqueRoots): 120 (WebCore::JSNode::visitAdditionalChildren): 121 * bindings/js/JSNodeIteratorCustom.cpp: 122 (WebCore::JSNodeIterator::visitAdditionalChildren): 123 * bindings/js/JSNodeListCustom.cpp: 124 (WebCore::JSNodeListOwner::isReachableFromOpaqueRoots): 125 * bindings/js/JSOffscreenCanvasRenderingContext2DCustom.cpp: 126 (WebCore::JSOffscreenCanvasRenderingContext2DOwner::isReachableFromOpaqueRoots): 127 (WebCore::JSOffscreenCanvasRenderingContext2D::visitAdditionalChildren): 128 * bindings/js/JSPaintRenderingContext2DCustom.cpp: 129 (WebCore::JSPaintRenderingContext2DOwner::isReachableFromOpaqueRoots): 130 (WebCore::JSPaintRenderingContext2D::visitAdditionalChildren): 131 * bindings/js/JSPaintWorkletGlobalScopeCustom.cpp: 132 (WebCore::JSPaintWorkletGlobalScope::visitAdditionalChildren): 133 * bindings/js/JSPaymentMethodChangeEventCustom.cpp: 134 (WebCore::JSPaymentMethodChangeEvent::visitAdditionalChildren): 135 * bindings/js/JSPaymentResponseCustom.cpp: 136 (WebCore::JSPaymentResponse::visitAdditionalChildren): 137 * bindings/js/JSPerformanceObserverCustom.cpp: 138 (WebCore::JSPerformanceObserver::visitAdditionalChildren): 139 (WebCore::JSPerformanceObserverOwner::isReachableFromOpaqueRoots): 140 * bindings/js/JSPopStateEventCustom.cpp: 141 (WebCore::JSPopStateEvent::visitAdditionalChildren): 142 * bindings/js/JSPromiseRejectionEventCustom.cpp: 143 (WebCore::JSPromiseRejectionEvent::visitAdditionalChildren): 144 * bindings/js/JSResizeObserverCustom.cpp: 145 (WebCore::JSResizeObserver::visitAdditionalChildren): 146 * bindings/js/JSResizeObserverEntryCustom.cpp: 147 (WebCore::JSResizeObserverEntry::visitAdditionalChildren): 148 * bindings/js/JSSVGViewSpecCustom.cpp: 149 (WebCore::JSSVGViewSpec::visitAdditionalChildren): 150 * bindings/js/JSServiceWorkerGlobalScopeCustom.cpp: 151 (WebCore::JSServiceWorkerGlobalScope::visitAdditionalChildren): 152 * bindings/js/JSStaticRangeCustom.cpp: 153 (WebCore::JSStaticRange::visitAdditionalChildren): 154 * bindings/js/JSStyleSheetCustom.cpp: 155 (WebCore::JSStyleSheet::visitAdditionalChildren): 156 * bindings/js/JSTextTrackCueCustom.cpp: 157 (WebCore::JSTextTrackCueOwner::isReachableFromOpaqueRoots): 158 (WebCore::JSTextTrackCue::visitAdditionalChildren): 159 * bindings/js/JSTextTrackCustom.cpp: 160 (WebCore::JSTextTrack::visitAdditionalChildren): 161 * bindings/js/JSTextTrackListCustom.cpp: 162 (WebCore::JSTextTrackList::visitAdditionalChildren): 163 * bindings/js/JSTreeWalkerCustom.cpp: 164 (WebCore::JSTreeWalker::visitAdditionalChildren): 165 * bindings/js/JSUndoItemCustom.cpp: 166 (WebCore::JSUndoItem::visitAdditionalChildren): 167 (WebCore::JSUndoItemOwner::isReachableFromOpaqueRoots): 168 * bindings/js/JSValueInWrappedObject.h: 169 (WebCore::JSValueInWrappedObject::visit const): 170 * bindings/js/JSVideoTrackCustom.cpp: 171 (WebCore::JSVideoTrack::visitAdditionalChildren): 172 * bindings/js/JSVideoTrackListCustom.cpp: 173 (WebCore::JSVideoTrackList::visitAdditionalChildren): 174 * bindings/js/JSWebGL2RenderingContextCustom.cpp: 175 (WebCore::JSWebGL2RenderingContext::visitAdditionalChildren): 176 * bindings/js/JSWebGLRenderingContextCustom.cpp: 177 (WebCore::JSWebGLRenderingContext::visitAdditionalChildren): 178 * bindings/js/JSWorkerGlobalScopeBase.cpp: 179 (WebCore::JSWorkerGlobalScopeBase::visitChildrenImpl): 180 (WebCore::JSWorkerGlobalScopeBase::visitChildren): Deleted. 181 * bindings/js/JSWorkerGlobalScopeBase.h: 182 * bindings/js/JSWorkerGlobalScopeCustom.cpp: 183 (WebCore::JSWorkerGlobalScope::visitAdditionalChildren): 184 * bindings/js/JSWorkerNavigatorCustom.cpp: 185 (WebCore::JSWorkerNavigator::visitAdditionalChildren): 186 * bindings/js/JSWorkletGlobalScopeBase.cpp: 187 (WebCore::JSWorkletGlobalScopeBase::visitChildrenImpl): 188 (WebCore::JSWorkletGlobalScopeBase::visitChildren): Deleted. 189 * bindings/js/JSWorkletGlobalScopeBase.h: 190 * bindings/js/JSXMLHttpRequestCustom.cpp: 191 (WebCore::JSXMLHttpRequest::visitAdditionalChildren): 192 * bindings/js/JSXPathResultCustom.cpp: 193 (WebCore::JSXPathResult::visitAdditionalChildren): 194 * bindings/js/WebCoreTypedArrayController.cpp: 195 (WebCore::WebCoreTypedArrayController::JSArrayBufferOwner::isReachableFromOpaqueRoots): 196 * bindings/js/WebCoreTypedArrayController.h: 197 * bindings/scripts/CodeGeneratorJS.pm: 198 (GenerateHeader): 199 (GenerateImplementation): 200 (GenerateCallbackHeaderContent): 201 (GenerateCallbackImplementationContent): 202 (GenerateIterableDefinition): 203 * bindings/scripts/test/JS/JSDOMWindow.cpp: 204 (WebCore::JSDOMWindow::subspaceForImpl): 205 * bindings/scripts/test/JS/JSDedicatedWorkerGlobalScope.cpp: 206 (WebCore::JSDedicatedWorkerGlobalScope::subspaceForImpl): 207 * bindings/scripts/test/JS/JSExposedToWorkerAndWindow.cpp: 208 (WebCore::JSExposedToWorkerAndWindow::subspaceForImpl): 209 (WebCore::JSExposedToWorkerAndWindowOwner::isReachableFromOpaqueRoots): 210 * bindings/scripts/test/JS/JSExposedToWorkerAndWindow.h: 211 * bindings/scripts/test/JS/JSPaintWorkletGlobalScope.cpp: 212 (WebCore::JSPaintWorkletGlobalScope::subspaceForImpl): 213 * bindings/scripts/test/JS/JSServiceWorkerGlobalScope.cpp: 214 (WebCore::JSServiceWorkerGlobalScope::subspaceForImpl): 215 * bindings/scripts/test/JS/JSTestCEReactions.cpp: 216 (WebCore::JSTestCEReactions::subspaceForImpl): 217 (WebCore::JSTestCEReactionsOwner::isReachableFromOpaqueRoots): 218 * bindings/scripts/test/JS/JSTestCEReactions.h: 219 * bindings/scripts/test/JS/JSTestCEReactionsStringifier.cpp: 220 (WebCore::JSTestCEReactionsStringifier::subspaceForImpl): 221 (WebCore::JSTestCEReactionsStringifierOwner::isReachableFromOpaqueRoots): 222 * bindings/scripts/test/JS/JSTestCEReactionsStringifier.h: 223 * bindings/scripts/test/JS/JSTestCallTracer.cpp: 224 (WebCore::JSTestCallTracer::subspaceForImpl): 225 (WebCore::JSTestCallTracerOwner::isReachableFromOpaqueRoots): 226 * bindings/scripts/test/JS/JSTestCallTracer.h: 227 * bindings/scripts/test/JS/JSTestClassWithJSBuiltinConstructor.cpp: 228 (WebCore::JSTestClassWithJSBuiltinConstructor::subspaceForImpl): 229 (WebCore::JSTestClassWithJSBuiltinConstructorOwner::isReachableFromOpaqueRoots): 230 * bindings/scripts/test/JS/JSTestClassWithJSBuiltinConstructor.h: 231 * bindings/scripts/test/JS/JSTestConditionalIncludes.cpp: 232 (WebCore::JSTestConditionalIncludes::subspaceForImpl): 233 (WebCore::JSTestConditionalIncludesOwner::isReachableFromOpaqueRoots): 234 * bindings/scripts/test/JS/JSTestConditionalIncludes.h: 235 * bindings/scripts/test/JS/JSTestConditionallyReadWrite.cpp: 236 (WebCore::JSTestConditionallyReadWrite::subspaceForImpl): 237 (WebCore::JSTestConditionallyReadWriteOwner::isReachableFromOpaqueRoots): 238 * bindings/scripts/test/JS/JSTestConditionallyReadWrite.h: 239 * bindings/scripts/test/JS/JSTestDOMJIT.cpp: 240 (WebCore::JSTestDOMJIT::subspaceForImpl): 241 * bindings/scripts/test/JS/JSTestDefaultToJSON.cpp: 242 (WebCore::JSTestDefaultToJSON::subspaceForImpl): 243 (WebCore::JSTestDefaultToJSONOwner::isReachableFromOpaqueRoots): 244 * bindings/scripts/test/JS/JSTestDefaultToJSON.h: 245 * bindings/scripts/test/JS/JSTestDefaultToJSONFilteredByExposed.cpp: 246 (WebCore::JSTestDefaultToJSONFilteredByExposed::subspaceForImpl): 247 (WebCore::JSTestDefaultToJSONFilteredByExposedOwner::isReachableFromOpaqueRoots): 248 * bindings/scripts/test/JS/JSTestDefaultToJSONFilteredByExposed.h: 249 * bindings/scripts/test/JS/JSTestDefaultToJSONIndirectInheritance.cpp: 250 (WebCore::JSTestDefaultToJSONIndirectInheritance::subspaceForImpl): 251 * bindings/scripts/test/JS/JSTestDefaultToJSONInherit.cpp: 252 (WebCore::JSTestDefaultToJSONInherit::subspaceForImpl): 253 * bindings/scripts/test/JS/JSTestDefaultToJSONInheritFinal.cpp: 254 (WebCore::JSTestDefaultToJSONInheritFinal::subspaceForImpl): 255 * bindings/scripts/test/JS/JSTestDomainSecurity.cpp: 256 (WebCore::JSTestDomainSecurity::subspaceForImpl): 257 (WebCore::JSTestDomainSecurityOwner::isReachableFromOpaqueRoots): 258 * bindings/scripts/test/JS/JSTestDomainSecurity.h: 259 * bindings/scripts/test/JS/JSTestEnabledBySetting.cpp: 260 (WebCore::JSTestEnabledBySetting::subspaceForImpl): 261 (WebCore::JSTestEnabledBySettingOwner::isReachableFromOpaqueRoots): 262 * bindings/scripts/test/JS/JSTestEnabledBySetting.h: 263 * bindings/scripts/test/JS/JSTestEnabledForContext.cpp: 264 (WebCore::JSTestEnabledForContext::subspaceForImpl): 265 (WebCore::JSTestEnabledForContextOwner::isReachableFromOpaqueRoots): 266 * bindings/scripts/test/JS/JSTestEnabledForContext.h: 267 * bindings/scripts/test/JS/JSTestEventConstructor.cpp: 268 (WebCore::JSTestEventConstructor::subspaceForImpl): 269 * bindings/scripts/test/JS/JSTestEventTarget.cpp: 270 (WebCore::JSTestEventTarget::subspaceForImpl): 271 * bindings/scripts/test/JS/JSTestException.cpp: 272 (WebCore::JSTestException::subspaceForImpl): 273 (WebCore::JSTestExceptionOwner::isReachableFromOpaqueRoots): 274 * bindings/scripts/test/JS/JSTestException.h: 275 * bindings/scripts/test/JS/JSTestGenerateIsReachable.cpp: 276 (WebCore::JSTestGenerateIsReachable::subspaceForImpl): 277 (WebCore::JSTestGenerateIsReachableOwner::isReachableFromOpaqueRoots): 278 * bindings/scripts/test/JS/JSTestGenerateIsReachable.h: 279 * bindings/scripts/test/JS/JSTestGlobalObject.cpp: 280 (WebCore::JSTestGlobalObject::subspaceForImpl): 281 (WebCore::JSTestGlobalObjectOwner::isReachableFromOpaqueRoots): 282 * bindings/scripts/test/JS/JSTestGlobalObject.h: 283 * bindings/scripts/test/JS/JSTestIndexedSetterNoIdentifier.cpp: 284 (WebCore::JSTestIndexedSetterNoIdentifier::subspaceForImpl): 285 (WebCore::JSTestIndexedSetterNoIdentifierOwner::isReachableFromOpaqueRoots): 286 * bindings/scripts/test/JS/JSTestIndexedSetterNoIdentifier.h: 287 * bindings/scripts/test/JS/JSTestIndexedSetterThrowingException.cpp: 288 (WebCore::JSTestIndexedSetterThrowingException::subspaceForImpl): 289 (WebCore::JSTestIndexedSetterThrowingExceptionOwner::isReachableFromOpaqueRoots): 290 * bindings/scripts/test/JS/JSTestIndexedSetterThrowingException.h: 291 * bindings/scripts/test/JS/JSTestIndexedSetterWithIdentifier.cpp: 292 (WebCore::JSTestIndexedSetterWithIdentifier::subspaceForImpl): 293 (WebCore::JSTestIndexedSetterWithIdentifierOwner::isReachableFromOpaqueRoots): 294 * bindings/scripts/test/JS/JSTestIndexedSetterWithIdentifier.h: 295 * bindings/scripts/test/JS/JSTestInterface.cpp: 296 (WebCore::jsTestInterfacePrototypeFunction_entriesCaller): 297 (WebCore::JSTestInterface::subspaceForImpl): 298 (WebCore::JSTestInterfaceOwner::isReachableFromOpaqueRoots): 299 * bindings/scripts/test/JS/JSTestInterface.h: 300 * bindings/scripts/test/JS/JSTestInterfaceLeadingUnderscore.cpp: 301 (WebCore::JSTestInterfaceLeadingUnderscore::subspaceForImpl): 302 (WebCore::JSTestInterfaceLeadingUnderscoreOwner::isReachableFromOpaqueRoots): 303 * bindings/scripts/test/JS/JSTestInterfaceLeadingUnderscore.h: 304 * bindings/scripts/test/JS/JSTestIterable.cpp: 305 (WebCore::jsTestIterablePrototypeFunction_entriesCaller): 306 (WebCore::JSTestIterable::subspaceForImpl): 307 (WebCore::JSTestIterableOwner::isReachableFromOpaqueRoots): 308 * bindings/scripts/test/JS/JSTestIterable.h: 309 * bindings/scripts/test/JS/JSTestJSBuiltinConstructor.cpp: 310 (WebCore::JSTestJSBuiltinConstructor::subspaceForImpl): 311 * bindings/scripts/test/JS/JSTestLegacyFactoryFunction.cpp: 312 (WebCore::JSTestLegacyFactoryFunction::subspaceForImpl): 313 (WebCore::JSTestLegacyFactoryFunctionOwner::isReachableFromOpaqueRoots): 314 * bindings/scripts/test/JS/JSTestLegacyFactoryFunction.h: 315 * bindings/scripts/test/JS/JSTestLegacyNoInterfaceObject.cpp: 316 (WebCore::JSTestLegacyNoInterfaceObject::subspaceForImpl): 317 (WebCore::JSTestLegacyNoInterfaceObjectOwner::isReachableFromOpaqueRoots): 318 * bindings/scripts/test/JS/JSTestLegacyNoInterfaceObject.h: 319 * bindings/scripts/test/JS/JSTestLegacyOverrideBuiltIns.cpp: 320 (WebCore::JSTestLegacyOverrideBuiltIns::subspaceForImpl): 321 (WebCore::JSTestLegacyOverrideBuiltInsOwner::isReachableFromOpaqueRoots): 322 * bindings/scripts/test/JS/JSTestLegacyOverrideBuiltIns.h: 323 * bindings/scripts/test/JS/JSTestMapLike.cpp: 324 (WebCore::JSTestMapLike::subspaceForImpl): 325 (WebCore::JSTestMapLikeOwner::isReachableFromOpaqueRoots): 326 * bindings/scripts/test/JS/JSTestMapLike.h: 327 * bindings/scripts/test/JS/JSTestMapLikeWithOverriddenOperations.cpp: 328 (WebCore::JSTestMapLikeWithOverriddenOperations::subspaceForImpl): 329 (WebCore::JSTestMapLikeWithOverriddenOperationsOwner::isReachableFromOpaqueRoots): 330 * bindings/scripts/test/JS/JSTestMapLikeWithOverriddenOperations.h: 331 * bindings/scripts/test/JS/JSTestNamedAndIndexedSetterNoIdentifier.cpp: 332 (WebCore::JSTestNamedAndIndexedSetterNoIdentifier::subspaceForImpl): 333 (WebCore::JSTestNamedAndIndexedSetterNoIdentifierOwner::isReachableFromOpaqueRoots): 334 * bindings/scripts/test/JS/JSTestNamedAndIndexedSetterNoIdentifier.h: 335 * bindings/scripts/test/JS/JSTestNamedAndIndexedSetterThrowingException.cpp: 336 (WebCore::JSTestNamedAndIndexedSetterThrowingException::subspaceForImpl): 337 (WebCore::JSTestNamedAndIndexedSetterThrowingExceptionOwner::isReachableFromOpaqueRoots): 338 * bindings/scripts/test/JS/JSTestNamedAndIndexedSetterThrowingException.h: 339 * bindings/scripts/test/JS/JSTestNamedAndIndexedSetterWithIdentifier.cpp: 340 (WebCore::JSTestNamedAndIndexedSetterWithIdentifier::subspaceForImpl): 341 (WebCore::JSTestNamedAndIndexedSetterWithIdentifierOwner::isReachableFromOpaqueRoots): 342 * bindings/scripts/test/JS/JSTestNamedAndIndexedSetterWithIdentifier.h: 343 * bindings/scripts/test/JS/JSTestNamedDeleterNoIdentifier.cpp: 344 (WebCore::JSTestNamedDeleterNoIdentifier::subspaceForImpl): 345 (WebCore::JSTestNamedDeleterNoIdentifierOwner::isReachableFromOpaqueRoots): 346 * bindings/scripts/test/JS/JSTestNamedDeleterNoIdentifier.h: 347 * bindings/scripts/test/JS/JSTestNamedDeleterThrowingException.cpp: 348 (WebCore::JSTestNamedDeleterThrowingException::subspaceForImpl): 349 (WebCore::JSTestNamedDeleterThrowingExceptionOwner::isReachableFromOpaqueRoots): 350 * bindings/scripts/test/JS/JSTestNamedDeleterThrowingException.h: 351 * bindings/scripts/test/JS/JSTestNamedDeleterWithIdentifier.cpp: 352 (WebCore::JSTestNamedDeleterWithIdentifier::subspaceForImpl): 353 (WebCore::JSTestNamedDeleterWithIdentifierOwner::isReachableFromOpaqueRoots): 354 * bindings/scripts/test/JS/JSTestNamedDeleterWithIdentifier.h: 355 * bindings/scripts/test/JS/JSTestNamedDeleterWithIndexedGetter.cpp: 356 (WebCore::JSTestNamedDeleterWithIndexedGetter::subspaceForImpl): 357 (WebCore::JSTestNamedDeleterWithIndexedGetterOwner::isReachableFromOpaqueRoots): 358 * bindings/scripts/test/JS/JSTestNamedDeleterWithIndexedGetter.h: 359 * bindings/scripts/test/JS/JSTestNamedGetterCallWith.cpp: 360 (WebCore::JSTestNamedGetterCallWith::subspaceForImpl): 361 (WebCore::JSTestNamedGetterCallWithOwner::isReachableFromOpaqueRoots): 362 * bindings/scripts/test/JS/JSTestNamedGetterCallWith.h: 363 * bindings/scripts/test/JS/JSTestNamedGetterNoIdentifier.cpp: 364 (WebCore::JSTestNamedGetterNoIdentifier::subspaceForImpl): 365 (WebCore::JSTestNamedGetterNoIdentifierOwner::isReachableFromOpaqueRoots): 366 * bindings/scripts/test/JS/JSTestNamedGetterNoIdentifier.h: 367 * bindings/scripts/test/JS/JSTestNamedGetterWithIdentifier.cpp: 368 (WebCore::JSTestNamedGetterWithIdentifier::subspaceForImpl): 369 (WebCore::JSTestNamedGetterWithIdentifierOwner::isReachableFromOpaqueRoots): 370 * bindings/scripts/test/JS/JSTestNamedGetterWithIdentifier.h: 371 * bindings/scripts/test/JS/JSTestNamedSetterNoIdentifier.cpp: 372 (WebCore::JSTestNamedSetterNoIdentifier::subspaceForImpl): 373 (WebCore::JSTestNamedSetterNoIdentifierOwner::isReachableFromOpaqueRoots): 374 * bindings/scripts/test/JS/JSTestNamedSetterNoIdentifier.h: 375 * bindings/scripts/test/JS/JSTestNamedSetterThrowingException.cpp: 376 (WebCore::JSTestNamedSetterThrowingException::subspaceForImpl): 377 (WebCore::JSTestNamedSetterThrowingExceptionOwner::isReachableFromOpaqueRoots): 378 * bindings/scripts/test/JS/JSTestNamedSetterThrowingException.h: 379 * bindings/scripts/test/JS/JSTestNamedSetterWithIdentifier.cpp: 380 (WebCore::JSTestNamedSetterWithIdentifier::subspaceForImpl): 381 (WebCore::JSTestNamedSetterWithIdentifierOwner::isReachableFromOpaqueRoots): 382 * bindings/scripts/test/JS/JSTestNamedSetterWithIdentifier.h: 383 * bindings/scripts/test/JS/JSTestNamedSetterWithIndexedGetter.cpp: 384 (WebCore::JSTestNamedSetterWithIndexedGetter::subspaceForImpl): 385 (WebCore::JSTestNamedSetterWithIndexedGetterOwner::isReachableFromOpaqueRoots): 386 * bindings/scripts/test/JS/JSTestNamedSetterWithIndexedGetter.h: 387 * bindings/scripts/test/JS/JSTestNamedSetterWithIndexedGetterAndSetter.cpp: 388 (WebCore::JSTestNamedSetterWithIndexedGetterAndSetter::subspaceForImpl): 389 (WebCore::JSTestNamedSetterWithIndexedGetterAndSetterOwner::isReachableFromOpaqueRoots): 390 * bindings/scripts/test/JS/JSTestNamedSetterWithIndexedGetterAndSetter.h: 391 * bindings/scripts/test/JS/JSTestNamedSetterWithLegacyOverrideBuiltIns.cpp: 392 (WebCore::JSTestNamedSetterWithLegacyOverrideBuiltIns::subspaceForImpl): 393 (WebCore::JSTestNamedSetterWithLegacyOverrideBuiltInsOwner::isReachableFromOpaqueRoots): 394 * bindings/scripts/test/JS/JSTestNamedSetterWithLegacyOverrideBuiltIns.h: 395 * bindings/scripts/test/JS/JSTestNamedSetterWithLegacyUnforgeableProperties.cpp: 396 (WebCore::JSTestNamedSetterWithLegacyUnforgeableProperties::subspaceForImpl): 397 (WebCore::JSTestNamedSetterWithLegacyUnforgeablePropertiesOwner::isReachableFromOpaqueRoots): 398 * bindings/scripts/test/JS/JSTestNamedSetterWithLegacyUnforgeableProperties.h: 399 * bindings/scripts/test/JS/JSTestNamedSetterWithLegacyUnforgeablePropertiesAndLegacyOverrideBuiltIns.cpp: 400 (WebCore::JSTestNamedSetterWithLegacyUnforgeablePropertiesAndLegacyOverrideBuiltIns::subspaceForImpl): 401 (WebCore::JSTestNamedSetterWithLegacyUnforgeablePropertiesAndLegacyOverrideBuiltInsOwner::isReachableFromOpaqueRoots): 402 * bindings/scripts/test/JS/JSTestNamedSetterWithLegacyUnforgeablePropertiesAndLegacyOverrideBuiltIns.h: 403 * bindings/scripts/test/JS/JSTestNode.cpp: 404 (WebCore::jsTestNodePrototypeFunction_entriesCaller): 405 (WebCore::JSTestNode::subspaceForImpl): 406 * bindings/scripts/test/JS/JSTestObj.cpp: 407 (WebCore::JSTestObj::subspaceForImpl): 408 (WebCore::JSTestObj::visitChildrenImpl): 409 (WebCore::JSTestObjOwner::isReachableFromOpaqueRoots): 410 (WebCore::JSTestObj::visitChildren): Deleted. 411 * bindings/scripts/test/JS/JSTestObj.h: 412 * bindings/scripts/test/JS/JSTestOperationConditional.cpp: 413 (WebCore::JSTestOperationConditional::subspaceForImpl): 414 (WebCore::JSTestOperationConditionalOwner::isReachableFromOpaqueRoots): 415 * bindings/scripts/test/JS/JSTestOperationConditional.h: 416 * bindings/scripts/test/JS/JSTestOverloadedConstructors.cpp: 417 (WebCore::JSTestOverloadedConstructors::subspaceForImpl): 418 (WebCore::JSTestOverloadedConstructorsOwner::isReachableFromOpaqueRoots): 419 * bindings/scripts/test/JS/JSTestOverloadedConstructors.h: 420 * bindings/scripts/test/JS/JSTestOverloadedConstructorsWithSequence.cpp: 421 (WebCore::JSTestOverloadedConstructorsWithSequence::subspaceForImpl): 422 (WebCore::JSTestOverloadedConstructorsWithSequenceOwner::isReachableFromOpaqueRoots): 423 * bindings/scripts/test/JS/JSTestOverloadedConstructorsWithSequence.h: 424 * bindings/scripts/test/JS/JSTestPluginInterface.cpp: 425 (WebCore::JSTestPluginInterface::subspaceForImpl): 426 (WebCore::JSTestPluginInterfaceOwner::isReachableFromOpaqueRoots): 427 * bindings/scripts/test/JS/JSTestPluginInterface.h: 428 * bindings/scripts/test/JS/JSTestPromiseRejectionEvent.cpp: 429 (WebCore::JSTestPromiseRejectionEvent::subspaceForImpl): 430 * bindings/scripts/test/JS/JSTestReadOnlyMapLike.cpp: 431 (WebCore::JSTestReadOnlyMapLike::subspaceForImpl): 432 (WebCore::JSTestReadOnlyMapLikeOwner::isReachableFromOpaqueRoots): 433 * bindings/scripts/test/JS/JSTestReadOnlyMapLike.h: 434 * bindings/scripts/test/JS/JSTestReadOnlySetLike.cpp: 435 (WebCore::JSTestReadOnlySetLike::subspaceForImpl): 436 (WebCore::JSTestReadOnlySetLikeOwner::isReachableFromOpaqueRoots): 437 * bindings/scripts/test/JS/JSTestReadOnlySetLike.h: 438 * bindings/scripts/test/JS/JSTestReportExtraMemoryCost.cpp: 439 (WebCore::JSTestReportExtraMemoryCost::subspaceForImpl): 440 (WebCore::JSTestReportExtraMemoryCost::visitChildrenImpl): 441 (WebCore::JSTestReportExtraMemoryCostOwner::isReachableFromOpaqueRoots): 442 (WebCore::JSTestReportExtraMemoryCost::visitChildren): Deleted. 443 * bindings/scripts/test/JS/JSTestReportExtraMemoryCost.h: 444 * bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp: 445 (WebCore::JSTestSerializedScriptValueInterface::subspaceForImpl): 446 (WebCore::JSTestSerializedScriptValueInterface::visitChildrenImpl): 447 (WebCore::JSTestSerializedScriptValueInterfaceOwner::isReachableFromOpaqueRoots): 448 (WebCore::JSTestSerializedScriptValueInterface::visitChildren): Deleted. 449 * bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.h: 450 * bindings/scripts/test/JS/JSTestSetLike.cpp: 451 (WebCore::JSTestSetLike::subspaceForImpl): 452 (WebCore::JSTestSetLikeOwner::isReachableFromOpaqueRoots): 453 * bindings/scripts/test/JS/JSTestSetLike.h: 454 * bindings/scripts/test/JS/JSTestSetLikeWithOverriddenOperations.cpp: 455 (WebCore::JSTestSetLikeWithOverriddenOperations::subspaceForImpl): 456 (WebCore::JSTestSetLikeWithOverriddenOperationsOwner::isReachableFromOpaqueRoots): 457 * bindings/scripts/test/JS/JSTestSetLikeWithOverriddenOperations.h: 458 * bindings/scripts/test/JS/JSTestStringifier.cpp: 459 (WebCore::JSTestStringifier::subspaceForImpl): 460 (WebCore::JSTestStringifierOwner::isReachableFromOpaqueRoots): 461 * bindings/scripts/test/JS/JSTestStringifier.h: 462 * bindings/scripts/test/JS/JSTestStringifierAnonymousOperation.cpp: 463 (WebCore::JSTestStringifierAnonymousOperation::subspaceForImpl): 464 (WebCore::JSTestStringifierAnonymousOperationOwner::isReachableFromOpaqueRoots): 465 * bindings/scripts/test/JS/JSTestStringifierAnonymousOperation.h: 466 * bindings/scripts/test/JS/JSTestStringifierNamedOperation.cpp: 467 (WebCore::JSTestStringifierNamedOperation::subspaceForImpl): 468 (WebCore::JSTestStringifierNamedOperationOwner::isReachableFromOpaqueRoots): 469 * bindings/scripts/test/JS/JSTestStringifierNamedOperation.h: 470 * bindings/scripts/test/JS/JSTestStringifierOperationImplementedAs.cpp: 471 (WebCore::JSTestStringifierOperationImplementedAs::subspaceForImpl): 472 (WebCore::JSTestStringifierOperationImplementedAsOwner::isReachableFromOpaqueRoots): 473 * bindings/scripts/test/JS/JSTestStringifierOperationImplementedAs.h: 474 * bindings/scripts/test/JS/JSTestStringifierOperationNamedToString.cpp: 475 (WebCore::JSTestStringifierOperationNamedToString::subspaceForImpl): 476 (WebCore::JSTestStringifierOperationNamedToStringOwner::isReachableFromOpaqueRoots): 477 * bindings/scripts/test/JS/JSTestStringifierOperationNamedToString.h: 478 * bindings/scripts/test/JS/JSTestStringifierReadOnlyAttribute.cpp: 479 (WebCore::JSTestStringifierReadOnlyAttribute::subspaceForImpl): 480 (WebCore::JSTestStringifierReadOnlyAttributeOwner::isReachableFromOpaqueRoots): 481 * bindings/scripts/test/JS/JSTestStringifierReadOnlyAttribute.h: 482 * bindings/scripts/test/JS/JSTestStringifierReadWriteAttribute.cpp: 483 (WebCore::JSTestStringifierReadWriteAttribute::subspaceForImpl): 484 (WebCore::JSTestStringifierReadWriteAttributeOwner::isReachableFromOpaqueRoots): 485 * bindings/scripts/test/JS/JSTestStringifierReadWriteAttribute.h: 486 * bindings/scripts/test/JS/JSTestTypedefs.cpp: 487 (WebCore::JSTestTypedefs::subspaceForImpl): 488 (WebCore::JSTestTypedefsOwner::isReachableFromOpaqueRoots): 489 * bindings/scripts/test/JS/JSTestTypedefs.h: 490 * bindings/scripts/test/JS/JSWorkerGlobalScope.cpp: 491 (WebCore::JSWorkerGlobalScope::subspaceForImpl): 492 * bindings/scripts/test/JS/JSWorkletGlobalScope.cpp: 493 (WebCore::JSWorkletGlobalScope::subspaceForImpl): 494 * dom/ActiveDOMCallback.h: 495 (WebCore::ActiveDOMCallback::visitJSFunction): 496 * dom/EventListener.h: 497 (WebCore::EventListener::visitJSFunction): 498 * dom/EventTarget.cpp: 499 (WebCore::EventTarget::visitJSEventListeners): 500 * dom/EventTarget.h: 501 * dom/MutationRecord.cpp: 502 * dom/MutationRecord.h: 503 * dom/NodeFilterCondition.h: 504 (WebCore::NodeFilterCondition::visitAggregate): Deleted. 505 * dom/StaticRange.cpp: 506 (WebCore::StaticRange::visitNodesConcurrently const): 507 * dom/StaticRange.h: 508 * html/canvas/WebGL2RenderingContext.cpp: 509 (WebCore::WebGL2RenderingContext::addMembersToOpaqueRoots): 510 * html/canvas/WebGL2RenderingContext.h: 511 * html/canvas/WebGLFramebuffer.cpp: 512 (WebCore::WebGLFramebuffer::addMembersToOpaqueRoots): 513 * html/canvas/WebGLFramebuffer.h: 514 * html/canvas/WebGLProgram.cpp: 515 (WebCore::WebGLProgram::addMembersToOpaqueRoots): 516 * html/canvas/WebGLProgram.h: 517 * html/canvas/WebGLRenderingContextBase.cpp: 518 (WebCore::WebGLRenderingContextBase::addMembersToOpaqueRoots): 519 * html/canvas/WebGLRenderingContextBase.h: 520 * html/canvas/WebGLTransformFeedback.cpp: 521 (WebCore::WebGLTransformFeedback::addMembersToOpaqueRoots): 522 * html/canvas/WebGLTransformFeedback.h: 523 * html/canvas/WebGLVertexArrayObjectBase.cpp: 524 (WebCore::WebGLVertexArrayObjectBase::addMembersToOpaqueRoots): 525 * html/canvas/WebGLVertexArrayObjectBase.h: 526 1 527 2021-02-19 Jiewen Tan <jiewen_tan@apple.com> 2 528 -
trunk/Source/WebCore/Modules/indexeddb/IDBObjectStore.cpp
r271368 r273138 1 1 /* 2 * Copyright (C) 2015 Apple Inc. All rights reserved.2 * Copyright (C) 2015-2021 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 729 729 } 730 730 731 void IDBObjectStore::visitReferencedIndexes(SlotVisitor& visitor) const 731 template<typename Visitor> 732 void IDBObjectStore::visitReferencedIndexes(Visitor& visitor) const 732 733 { 733 734 Locker<Lock> locker(m_referencedIndexLock); … … 738 739 } 739 740 741 template void IDBObjectStore::visitReferencedIndexes(AbstractSlotVisitor&) const; 742 template void IDBObjectStore::visitReferencedIndexes(SlotVisitor&) const; 743 740 744 void IDBObjectStore::renameReferencedIndex(IDBIndex& index, const String& newName) 741 745 { -
trunk/Source/WebCore/Modules/indexeddb/IDBObjectStore.h
r259252 r273138 1 1 /* 2 * Copyright (C) 2015 Apple Inc. All rights reserved.2 * Copyright (C) 2015-2021 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 110 110 void deref(); 111 111 112 void visitReferencedIndexes(JSC::SlotVisitor&) const;112 template<typename Visitor> void visitReferencedIndexes(Visitor&) const; 113 113 void renameReferencedIndex(IDBIndex&, const String& newName); 114 114 -
trunk/Source/WebCore/Modules/indexeddb/IDBTransaction.cpp
r271379 r273138 1 1 /* 2 * Copyright (C) 2015-20 17Apple Inc. All rights reserved.2 * Copyright (C) 2015-2021 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 1456 1456 } 1457 1457 1458 void IDBTransaction::visitReferencedObjectStores(JSC::SlotVisitor& visitor) const 1458 template<typename Visitor> 1459 void IDBTransaction::visitReferencedObjectStores(Visitor& visitor) const 1459 1460 { 1460 1461 Locker<Lock> locker(m_referencedObjectStoreLock); … … 1465 1466 } 1466 1467 1468 template void IDBTransaction::visitReferencedObjectStores(JSC::AbstractSlotVisitor&) const; 1469 template void IDBTransaction::visitReferencedObjectStores(JSC::SlotVisitor&) const; 1470 1467 1471 void IDBTransaction::handlePendingOperations() 1468 1472 { -
trunk/Source/WebCore/Modules/indexeddb/IDBTransaction.h
r259419 r273138 1 1 /* 2 * Copyright (C) 2015 Apple Inc. All rights reserved.2 * Copyright (C) 2015-2021 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 150 150 void connectionClosedFromServer(const IDBError&); 151 151 152 void visitReferencedObjectStores(JSC::SlotVisitor&) const;152 template<typename Visitor> void visitReferencedObjectStores(Visitor&) const; 153 153 154 154 WEBCORE_EXPORT static std::atomic<unsigned> numberOfIDBTransactions; -
trunk/Source/WebCore/Modules/webaudio/AudioBuffer.cpp
r270924 r273138 1 1 /* 2 2 * Copyright (C) 2010 Google Inc. All rights reserved. 3 * Copyright (C) 2017 Apple Inc. All rights reserved.3 * Copyright (C) 2017-2021 Apple Inc. All rights reserved. 4 4 * 5 5 * Redistribution and use in source and binary forms, with or without … … 155 155 } 156 156 157 void AudioBuffer::visitChannelWrappers(JSC::SlotVisitor& visitor) 157 template<typename Visitor> 158 void AudioBuffer::visitChannelWrappers(Visitor& visitor) 158 159 { 159 160 for (auto& channelWrapper : m_channelWrappers) 160 161 channelWrapper.visit(visitor); 161 162 } 163 164 template void AudioBuffer::visitChannelWrappers(JSC::AbstractSlotVisitor&); 165 template void AudioBuffer::visitChannelWrappers(JSC::SlotVisitor&); 162 166 163 167 RefPtr<Float32Array> AudioBuffer::channelData(unsigned channelIndex) -
trunk/Source/WebCore/Modules/webaudio/AudioBuffer.h
r270924 r273138 1 1 /* 2 2 * Copyright (C) 2010 Google Inc. All rights reserved. 3 * Copyright (C) 2017 Apple Inc. All rights reserved.3 * Copyright (C) 2017-2021 Apple Inc. All rights reserved. 4 4 * 5 5 * Redistribution and use in source and binary forms, with or without … … 76 76 size_t memoryCost() const; 77 77 78 void visitChannelWrappers(JSC::SlotVisitor&);78 template<typename Visitor> void visitChannelWrappers(Visitor&); 79 79 80 80 private: -
trunk/Source/WebCore/bindings/js/DOMGCOutputConstraint.cpp
r272797 r273138 50 50 } 51 51 52 void DOMGCOutputConstraint::executeImpl(SlotVisitor& visitor) 52 template<typename Visitor> 53 void DOMGCOutputConstraint::executeImplImpl(Visitor& visitor) 53 54 { 54 55 Heap& heap = m_vm.heap; … … 61 62 m_clientData.forEachOutputConstraintSpace( 62 63 [&] (Subspace& subspace) { 63 auto func = [] ( SlotVisitor& visitor, HeapCell* heapCell, HeapCell::Kind) {64 auto func = [] (Visitor& visitor, HeapCell* heapCell, HeapCell::Kind) { 64 65 SetRootMarkReasonScope rootScope(visitor, RootMarkReason::DOMGCOutput); 65 66 JSCell* cell = static_cast<JSCell*>(heapCell); … … 67 68 }; 68 69 69 visitor.addParallelConstraintTask(subspace.forEachMarkedCellInParallel(func)); 70 RefPtr<SharedTask<void(Visitor&)>> task = subspace.template forEachMarkedCellInParallel<Visitor>(func); 71 visitor.addParallelConstraintTask(task); 70 72 }); 71 73 } 72 74 75 void DOMGCOutputConstraint::executeImpl(AbstractSlotVisitor& visitor) { executeImplImpl(visitor); } 76 void DOMGCOutputConstraint::executeImpl(SlotVisitor& visitor) { executeImplImpl(visitor); } 77 73 78 } // namespace WebCore 74 79 -
trunk/Source/WebCore/bindings/js/DOMGCOutputConstraint.h
r244115 r273138 1 1 /* 2 * Copyright (C) 2017-20 18Apple Inc. All rights reserved.2 * Copyright (C) 2017-2021 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 43 43 44 44 protected: 45 void executeImpl(JSC::AbstractSlotVisitor&) override; 45 46 void executeImpl(JSC::SlotVisitor&) override; 46 47 47 48 private: 49 template<typename Visitor> void executeImplImpl(Visitor&); 50 48 51 JSC::VM& m_vm; 49 52 JSVMClientData& m_clientData; -
trunk/Source/WebCore/bindings/js/JSAbortControllerCustom.cpp
r250727 r273138 1 1 /* 2 * Copyright (C) 2019 Apple Inc. All rights reserved.2 * Copyright (C) 2019-2021 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 29 29 namespace WebCore { 30 30 31 void JSAbortController::visitAdditionalChildren(JSC::SlotVisitor& visitor) 31 template<typename Visitor> 32 void JSAbortController::visitAdditionalChildren(Visitor& visitor) 32 33 { 33 34 visitor.addOpaqueRoot(&wrapped().signal()); 34 35 } 35 36 37 DEFINE_VISIT_ADDITIONAL_CHILDREN(JSAbortController); 38 36 39 } // namespace WebCore -
trunk/Source/WebCore/bindings/js/JSAbortSignalCustom.cpp
r250727 r273138 1 1 /* 2 * Copyright (C) 2019 Apple Inc. All rights reserved.2 * Copyright (C) 2019-2021 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 29 29 namespace WebCore { 30 30 31 bool JSAbortSignalOwner::isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown> handle, void*, JSC:: SlotVisitor& visitor, const char** reason)31 bool JSAbortSignalOwner::isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown> handle, void*, JSC::AbstractSlotVisitor& visitor, const char** reason) 32 32 { 33 33 auto& abortSignal = JSC::jsCast<JSAbortSignal*>(handle.slot()->asCell())->wrapped(); -
trunk/Source/WebCore/bindings/js/JSAttrCustom.cpp
r209812 r273138 1 1 /* 2 * Copyright (C) 2007 , 2008, 2009Apple Inc. All rights reserved.2 * Copyright (C) 2007-2021 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 34 34 namespace WebCore { 35 35 36 void JSAttr::visitAdditionalChildren(JSC::SlotVisitor& visitor) 36 template<typename Visitor> 37 void JSAttr::visitAdditionalChildren(Visitor& visitor) 37 38 { 38 39 if (Element* element = wrapped().ownerElement()) … … 40 41 } 41 42 43 DEFINE_VISIT_ADDITIONAL_CHILDREN(JSAttr); 44 42 45 } // namespace WebCore -
trunk/Source/WebCore/bindings/js/JSAudioBufferCustom.cpp
r269081 r273138 1 1 /* 2 * Copyright (C) 2020 Apple Inc. All rights reserved.2 * Copyright (C) 2020-2021 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 32 32 using namespace JSC; 33 33 34 void JSAudioBuffer::visitAdditionalChildren(SlotVisitor& visitor) 34 template<typename Visitor> 35 void JSAudioBuffer::visitAdditionalChildren(Visitor& visitor) 35 36 { 36 37 wrapped().visitChannelWrappers(visitor); 37 38 } 38 39 40 DEFINE_VISIT_ADDITIONAL_CHILDREN(JSAudioBuffer); 41 39 42 } // namespace WebCore 40 43 -
trunk/Source/WebCore/bindings/js/JSAudioTrackCustom.cpp
r262695 r273138 1 1 /* 2 * Copyright (C) 2011 Apple Inc. All rights reserved.2 * Copyright (C) 2011-2021 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 36 36 using namespace JSC; 37 37 38 void JSAudioTrack::visitAdditionalChildren(SlotVisitor& visitor) 38 template<typename Visitor> 39 void JSAudioTrack::visitAdditionalChildren(Visitor& visitor) 39 40 { 40 41 visitor.addOpaqueRoot(root(&wrapped())); 41 42 } 42 43 44 DEFINE_VISIT_ADDITIONAL_CHILDREN(JSAudioTrack); 45 43 46 } // namespace WebCore 44 47 -
trunk/Source/WebCore/bindings/js/JSAudioTrackListCustom.cpp
r262695 r273138 1 1 /* 2 * Copyright (C) 2011 Apple Inc. All rights reserved.2 * Copyright (C) 2011-2021 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 37 37 using namespace JSC; 38 38 39 void JSAudioTrackList::visitAdditionalChildren(SlotVisitor& visitor) 39 template<typename Visitor> 40 void JSAudioTrackList::visitAdditionalChildren(Visitor& visitor) 40 41 { 41 42 visitor.addOpaqueRoot(root(wrapped().element())); 42 43 } 43 44 45 DEFINE_VISIT_ADDITIONAL_CHILDREN(JSAudioTrackList); 46 44 47 } // namespace WebCore 45 48 -
trunk/Source/WebCore/bindings/js/JSAudioWorkletProcessorCustom.cpp
r268560 r273138 1 1 /* 2 * Copyright (C) 2020 Apple Inc. All rights reserved.2 * Copyright (C) 2020-2021 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 32 32 using namespace JSC; 33 33 34 void JSAudioWorkletProcessor::visitAdditionalChildren(SlotVisitor& visitor) 34 template<typename Visitor> 35 void JSAudioWorkletProcessor::visitAdditionalChildren(Visitor& visitor) 35 36 { 36 37 auto& processor = wrapped(); … … 40 41 } 41 42 43 DEFINE_VISIT_ADDITIONAL_CHILDREN(JSAudioWorkletProcessor); 44 42 45 } // namespace WebCore 43 46 -
trunk/Source/WebCore/bindings/js/JSCSSRuleCustom.cpp
r256477 r273138 1 1 /* 2 * Copyright (C) 2007 , 2008Apple Inc. All rights reserved.2 * Copyright (C) 2007-2021 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 52 52 using namespace JSC; 53 53 54 void JSCSSRule::visitAdditionalChildren(SlotVisitor& visitor) 54 template<typename Visitor> 55 void JSCSSRule::visitAdditionalChildren(Visitor& visitor) 55 56 { 56 57 visitor.addOpaqueRoot(root(&wrapped())); 57 58 } 59 60 DEFINE_VISIT_ADDITIONAL_CHILDREN(JSCSSRule); 58 61 59 62 JSValue toJSNewlyCreated(JSGlobalObject*, JSDOMGlobalObject* globalObject, Ref<CSSRule>&& rule) -
trunk/Source/WebCore/bindings/js/JSCSSRuleListCustom.cpp
r249175 r273138 1 1 /* 2 * Copyright (C) 2009-20 19Apple Inc. All right reserved.2 * Copyright (C) 2009-2021 Apple Inc. All right reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 37 37 using namespace JSC; 38 38 39 bool JSCSSRuleListOwner::isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown> handle, void*, SlotVisitor& visitor, const char** reason)39 bool JSCSSRuleListOwner::isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown> handle, void*, AbstractSlotVisitor& visitor, const char** reason) 40 40 { 41 41 JSCSSRuleList* jsCSSRuleList = jsCast<JSCSSRuleList*>(handle.slot()->asCell()); -
trunk/Source/WebCore/bindings/js/JSCSSStyleDeclarationCustom.cpp
r223476 r273138 1 1 /* 2 * Copyright (C) 2007-20 16Apple Inc. All rights reserved.2 * Copyright (C) 2007-2021 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 52 52 } 53 53 54 void JSCSSStyleDeclaration::visitAdditionalChildren(SlotVisitor& visitor) 54 template<typename Visitor> 55 void JSCSSStyleDeclaration::visitAdditionalChildren(Visitor& visitor) 55 56 { 56 57 visitor.addOpaqueRoot(root(&wrapped())); 57 58 } 58 59 60 DEFINE_VISIT_ADDITIONAL_CHILDREN(JSCSSStyleDeclaration); 61 59 62 } // namespace WebCore -
trunk/Source/WebCore/bindings/js/JSCallbackData.cpp
r265387 r273138 1 1 /* 2 * Copyright (C) 2007-20 09, 2015Apple Inc. All rights reserved.2 * Copyright (C) 2007-2021 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 96 96 } 97 97 98 void JSCallbackDataWeak::visitJSFunction(JSC::SlotVisitor& vistor) 98 template<typename Visitor> 99 void JSCallbackDataWeak::visitJSFunction(Visitor& visitor) 99 100 { 100 vis tor.append(m_callback);101 visitor.append(m_callback); 101 102 } 102 103 103 bool JSCallbackDataWeak::WeakOwner::isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown>, void* context, SlotVisitor& visitor, const char** reason) 104 template void JSCallbackDataWeak::visitJSFunction(JSC::AbstractSlotVisitor&); 105 template void JSCallbackDataWeak::visitJSFunction(JSC::SlotVisitor&); 106 107 bool JSCallbackDataWeak::WeakOwner::isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown>, void* context, AbstractSlotVisitor& visitor, const char** reason) 104 108 { 105 109 if (UNLIKELY(reason)) -
trunk/Source/WebCore/bindings/js/JSCallbackData.h
r270067 r273138 1 1 /* 2 * Copyright (C) 2007-20 09, 2015Apple Inc. All rights reserved.2 * Copyright (C) 2007-2021 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 114 114 } 115 115 116 void visitJSFunction(JSC::SlotVisitor&);116 template<typename Visitor> void visitJSFunction(Visitor&); 117 117 118 118 private: 119 119 class WeakOwner : public JSC::WeakHandleOwner { 120 bool isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown>, void* context, JSC:: SlotVisitor&, const char**) override;120 bool isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown>, void* context, JSC::AbstractSlotVisitor&, const char**) override; 121 121 }; 122 122 WeakOwner m_weakOwner; -
trunk/Source/WebCore/bindings/js/JSCanvasRenderingContext2DCustom.cpp
r244115 r273138 1 1 /* 2 * Copyright (C) 2006-20 17Apple Inc. All rights reserved.2 * Copyright (C) 2006-2021 Apple Inc. All rights reserved. 3 3 * 4 4 * This library is free software; you can redistribute it and/or … … 25 25 namespace WebCore { 26 26 27 bool JSCanvasRenderingContext2DOwner::isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown> handle, void*, JSC:: SlotVisitor& visitor, const char** reason)27 bool JSCanvasRenderingContext2DOwner::isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown> handle, void*, JSC::AbstractSlotVisitor& visitor, const char** reason) 28 28 { 29 29 if (UNLIKELY(reason)) … … 35 35 } 36 36 37 void JSCanvasRenderingContext2D::visitAdditionalChildren(JSC::SlotVisitor& visitor) 37 template<typename Visitor> 38 void JSCanvasRenderingContext2D::visitAdditionalChildren(Visitor& visitor) 38 39 { 39 40 visitor.addOpaqueRoot(root(wrapped().canvas())); 40 41 } 41 42 43 DEFINE_VISIT_ADDITIONAL_CHILDREN(JSCanvasRenderingContext2D); 44 42 45 } // namespace WebCore -
trunk/Source/WebCore/bindings/js/JSCustomEventCustom.cpp
r251425 r273138 1 1 /* 2 * Copyright (C) 2015-20 18Apple Inc. All rights reserved.2 * Copyright (C) 2015-2021 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 43 43 } 44 44 45 void JSCustomEvent::visitAdditionalChildren(JSC::SlotVisitor& visitor) 45 template<typename Visitor> 46 void JSCustomEvent::visitAdditionalChildren(Visitor& visitor) 46 47 { 47 48 wrapped().detail().visit(visitor); … … 49 50 } 50 51 52 DEFINE_VISIT_ADDITIONAL_CHILDREN(JSCustomEvent); 53 51 54 } // namespace WebCore -
trunk/Source/WebCore/bindings/js/JSDOMBuiltinConstructorBase.cpp
r267526 r273138 1 1 /* 2 2 * Copyright (C) 1999-2001 Harri Porten (porten@kde.org) 3 * Copyright (C) 2004-20 17Apple Inc. All rights reserved.3 * Copyright (C) 2004-2021 Apple Inc. All rights reserved. 4 4 * Copyright (C) 2007 Samuel Weinig <sam@webkit.org> 5 5 * Copyright (C) 2013 Michael Pruett <michael@68k.org> … … 46 46 } 47 47 48 void JSDOMBuiltinConstructorBase::visitChildren(JSC::JSCell* cell, JSC::SlotVisitor& visitor) 48 template<typename Visitor> 49 void JSDOMBuiltinConstructorBase::visitChildrenImpl(JSC::JSCell* cell, Visitor& visitor) 49 50 { 50 51 auto* thisObject = jsCast<JSDOMBuiltinConstructorBase*>(cell); … … 54 55 } 55 56 57 DEFINE_VISIT_CHILDREN(JSDOMBuiltinConstructorBase); 58 56 59 JSC::IsoSubspace* JSDOMBuiltinConstructorBase::subspaceForImpl(JSC::VM& vm) 57 60 { -
trunk/Source/WebCore/bindings/js/JSDOMBuiltinConstructorBase.h
r254010 r273138 1 1 /* 2 2 * Copyright (C) 2015, 2016 Canon Inc. All rights reserved. 3 * Copyright (C) 2016 Apple Inc. All rights reserved.3 * Copyright (C) 2016-2021 Apple Inc. All rights reserved. 4 4 * 5 5 * This library is free software; you can redistribute it and/or … … 43 43 } 44 44 45 static void visitChildren(JSC::JSCell*, JSC::SlotVisitor&);45 DECLARE_VISIT_CHILDREN; 46 46 47 47 JSC::JSFunction* initializeFunction(); -
trunk/Source/WebCore/bindings/js/JSDOMGlobalObject.cpp
r272221 r273138 1 1 /* 2 * Copyright (C) 2008-20 18Apple Inc. All Rights Reserved.2 * Copyright (C) 2008-2021 Apple Inc. All Rights Reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 239 239 } 240 240 241 void JSDOMGlobalObject::visitChildren(JSCell* cell, SlotVisitor& visitor) 241 template<typename Visitor> 242 void JSDOMGlobalObject::visitChildrenImpl(JSCell* cell, Visitor& visitor) 242 243 { 243 244 JSDOMGlobalObject* thisObject = jsCast<JSDOMGlobalObject*>(cell); … … 260 261 thisObject->m_builtinInternalFunctions.visit(visitor); 261 262 } 263 264 DEFINE_VISIT_CHILDREN(JSDOMGlobalObject); 262 265 263 266 void JSDOMGlobalObject::promiseRejectionTracker(JSGlobalObject* jsGlobalObject, JSPromise* promise, JSPromiseRejectionOperation operation) -
trunk/Source/WebCore/bindings/js/JSDOMGlobalObject.h
r271993 r273138 1 1 /* 2 * Copyright (C) 2008-20 18Apple Inc. All Rights Reserved.2 * Copyright (C) 2008-2021 Apple Inc. All Rights Reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 70 70 JSDOMGlobalObject* globalObject() { return this; } 71 71 72 static void visitChildren(JSC::JSCell*, JSC::SlotVisitor&);72 DECLARE_VISIT_CHILDREN; 73 73 74 74 DOMWrapperWorld& world() { return m_world.get(); } -
trunk/Source/WebCore/bindings/js/JSDOMGuardedObject.h
r252263 r273138 1 1 /* 2 * Copyright (C) 2017 Apple Inc. All rights reserved.2 * Copyright (C) 2017-2021 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 41 41 bool isSuspended() const { return !m_guarded || !canInvokeCallback(); } // The wrapper world has gone away or active DOM objects have been suspended. 42 42 43 void visitAggregate(JSC::SlotVisitor& visitor) { visitor.append(m_guarded); }43 template<typename Visitor> void visitAggregate(Visitor& visitor) { visitor.append(m_guarded); } 44 44 45 45 JSC::JSValue guardedObject() const { return m_guarded.get(); } -
trunk/Source/WebCore/bindings/js/JSDOMQuadCustom.cpp
r223476 r273138 1 1 /* 2 * Copyright (C) 2017 Apple Inc. All rights reserved.2 * Copyright (C) 2017-2021 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 34 34 using namespace JSC; 35 35 36 void JSDOMQuad::visitAdditionalChildren(SlotVisitor& visitor) 36 template<typename Visitor> 37 void JSDOMQuad::visitAdditionalChildren(Visitor& visitor) 37 38 { 38 39 visitor.addOpaqueRoot(const_cast<DOMPoint*>(&wrapped().p1())); … … 42 43 } 43 44 44 } 45 DEFINE_VISIT_ADDITIONAL_CHILDREN(JSDOMQuad); 46 47 } // namespace WebCore -
trunk/Source/WebCore/bindings/js/JSDOMWindowCustom.cpp
r272885 r273138 1 1 /* 2 * Copyright (C) 2007-202 0Apple Inc. All rights reserved.2 * Copyright (C) 2007-2021 Apple Inc. All rights reserved. 3 3 * Copyright (C) 2011 Google Inc. All rights reserved. 4 4 * … … 120 120 } 121 121 122 void JSDOMWindow::visitAdditionalChildren(SlotVisitor& visitor) 122 template<typename Visitor> 123 void JSDOMWindow::visitAdditionalChildren(Visitor& visitor) 123 124 { 124 125 if (Frame* frame = wrapped().frame()) … … 132 133 wrapped().visitJSEventListeners(visitor); 133 134 } 135 136 DEFINE_VISIT_ADDITIONAL_CHILDREN(JSDOMWindow); 134 137 135 138 #if ENABLE(USER_MESSAGE_HANDLERS) -
trunk/Source/WebCore/bindings/js/JSDeprecatedCSSOMValueCustom.cpp
r251425 r273138 1 1 /* 2 * Copyright (C) 2007-20 19Apple Inc. All rights reserved.2 * Copyright (C) 2007-2021 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 36 36 using namespace JSC; 37 37 38 bool JSDeprecatedCSSOMValueOwner::isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown> handle, void*, SlotVisitor& visitor, const char** reason)38 bool JSDeprecatedCSSOMValueOwner::isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown> handle, void*, AbstractSlotVisitor& visitor, const char** reason) 39 39 { 40 40 JSDeprecatedCSSOMValue* jsCSSValue = jsCast<JSDeprecatedCSSOMValue*>(handle.slot()->asCell()); -
trunk/Source/WebCore/bindings/js/JSDocumentCustom.cpp
r267449 r273138 1 1 /* 2 * Copyright (C) 2007-20 09, 2011, 2016, 2017Apple Inc. All rights reserved.2 * Copyright (C) 2007-2021 Apple Inc. All rights reserved. 3 3 * 4 4 * This library is free software; you can redistribute it and/or … … 92 92 } 93 93 94 void JSDocument::visitAdditionalChildren(SlotVisitor& visitor) 94 template<typename Visitor> 95 void JSDocument::visitAdditionalChildren(Visitor& visitor) 95 96 { 96 97 visitor.addOpaqueRoot(static_cast<ScriptExecutionContext*>(&wrapped())); 97 98 } 99 100 DEFINE_VISIT_ADDITIONAL_CHILDREN(JSDocument); 98 101 99 102 void JSDocument::analyzeHeap(JSCell* cell, HeapAnalyzer& analyzer) -
trunk/Source/WebCore/bindings/js/JSErrorEventCustom.cpp
r234789 r273138 1 1 /* 2 2 * Copyright (C) 2018 Yusuke Suzuki <yusukesuzuki@slowstart.org>. 3 * Copyright (C) 2021 Apple Inc. All rights reserved. 3 4 * 4 5 * Redistribution and use in source and binary forms, with or without … … 29 30 namespace WebCore { 30 31 31 void JSErrorEvent::visitAdditionalChildren(JSC::SlotVisitor& visitor) 32 template<typename Visitor> 33 void JSErrorEvent::visitAdditionalChildren(Visitor& visitor) 32 34 { 33 35 wrapped().originalError().visit(visitor); 34 36 } 35 37 38 DEFINE_VISIT_ADDITIONAL_CHILDREN(JSErrorEvent); 39 36 40 } // namespace WebCore -
trunk/Source/WebCore/bindings/js/JSEventListener.cpp
r269500 r273138 1 1 /* 2 2 * Copyright (C) 2001 Peter Kelly (pmk@post.com) 3 * Copyright (C) 2003-20 19Apple Inc. All Rights Reserved.3 * Copyright (C) 2003-2021 Apple Inc. All Rights Reserved. 4 4 * 5 5 * This library is free software; you can redistribute it and/or … … 79 79 } 80 80 81 void JSEventListener::visitJSFunction(SlotVisitor& visitor) 81 template<typename Visitor> 82 inline void JSEventListener::visitJSFunctionImpl(Visitor& visitor) 82 83 { 83 84 // If m_wrapper is null, we are not keeping m_jsFunction alive. … … 87 88 visitor.append(m_jsFunction); 88 89 } 90 91 void JSEventListener::visitJSFunction(AbstractSlotVisitor& visitor) { visitJSFunctionImpl(visitor); } 92 void JSEventListener::visitJSFunction(SlotVisitor& visitor) { visitJSFunctionImpl(visitor); } 89 93 90 94 static void handleBeforeUnloadEventReturnValue(BeforeUnloadEvent& event, const String& returnValue) -
trunk/Source/WebCore/bindings/js/JSEventListener.h
r264304 r273138 1 1 /* 2 2 * Copyright (C) 2001 Peter Kelly (pmk@post.com) 3 * Copyright (C) 2003-20 18Apple Inc. All rights reserved.3 * Copyright (C) 2003-2021 Apple Inc. All rights reserved. 4 4 * 5 5 * This library is free software; you can redistribute it and/or … … 63 63 private: 64 64 virtual JSC::JSObject* initializeJSFunction(ScriptExecutionContext&) const; 65 66 template<typename Visitor> void visitJSFunctionImpl(Visitor&); 67 void visitJSFunction(JSC::AbstractSlotVisitor&) final; 65 68 void visitJSFunction(JSC::SlotVisitor&) final; 66 69 -
trunk/Source/WebCore/bindings/js/JSEventTargetCustom.cpp
r256716 r273138 1 1 /* 2 * Copyright (C) 2008-20 17Apple Inc. All Rights Reserved.2 * Copyright (C) 2008-2021 Apple Inc. All Rights Reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 73 73 } 74 74 75 void JSEventTarget::visitAdditionalChildren(SlotVisitor& visitor) 75 template<typename Visitor> 76 void JSEventTarget::visitAdditionalChildren(Visitor& visitor) 76 77 { 77 78 wrapped().visitJSEventListeners(visitor); 78 79 } 79 80 81 DEFINE_VISIT_ADDITIONAL_CHILDREN(JSEventTarget); 82 80 83 } // namespace WebCore -
trunk/Source/WebCore/bindings/js/JSFetchEventCustom.cpp
r223951 r273138 1 1 /* 2 * Copyright (C) 2017 Apple Inc. All rights reserved.2 * Copyright (C) 2017-2021 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 31 31 namespace WebCore { 32 32 33 void JSFetchEvent::visitAdditionalChildren(JSC::SlotVisitor& visitor) 33 template<typename Visitor> 34 void JSFetchEvent::visitAdditionalChildren(Visitor& visitor) 34 35 { 35 36 visitor.addOpaqueRoot(&wrapped().request()); 36 37 } 37 38 38 } 39 DEFINE_VISIT_ADDITIONAL_CHILDREN(JSFetchEvent); 40 41 } // namespace WebCore 39 42 40 43 #endif -
trunk/Source/WebCore/bindings/js/JSHTMLCanvasElementCustom.cpp
r266061 r273138 1 1 /* 2 * Copyright (C) 2020 Apple Inc. All rights reserved.2 * Copyright (C) 2020-2021 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 32 32 namespace WebCore { 33 33 34 void JSHTMLCanvasElement::visitAdditionalChildren(JSC::SlotVisitor& visitor) 34 template<typename Visitor> 35 void JSHTMLCanvasElement::visitAdditionalChildren(Visitor& visitor) 35 36 { 36 37 visitor.addOpaqueRoot(static_cast<CanvasBase*>(&wrapped())); 37 38 } 38 39 40 DEFINE_VISIT_ADDITIONAL_CHILDREN(JSHTMLCanvasElement); 41 39 42 } // namespace WebCore -
trunk/Source/WebCore/bindings/js/JSHTMLTemplateElementCustom.cpp
r250735 r273138 1 1 /* 2 2 * Copyright (C) 2012 Google Inc. All rights reserved. 3 * Copyright (C) 2021 Apple Inc. All rights reserved. 3 4 * 4 5 * Redistribution and use in source and binary forms, with or without … … 38 39 using namespace JSC; 39 40 40 void JSHTMLTemplateElement::visitAdditionalChildren(JSC::SlotVisitor& visitor) 41 template<typename Visitor> 42 void JSHTMLTemplateElement::visitAdditionalChildren(Visitor& visitor) 41 43 { 42 44 if (auto* content = wrapped().contentIfAvailable()) … … 44 46 } 45 47 48 DEFINE_VISIT_ADDITIONAL_CHILDREN(JSHTMLTemplateElement); 49 46 50 } // namespace WebCore -
trunk/Source/WebCore/bindings/js/JSHistoryCustom.cpp
r251425 r273138 1 1 /* 2 * Copyright (C) 2008-20 18Apple Inc. All rights reserved.2 * Copyright (C) 2008-2021 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 45 45 } 46 46 47 void JSHistory::visitAdditionalChildren(SlotVisitor& visitor) 47 template<typename Visitor> 48 void JSHistory::visitAdditionalChildren(Visitor& visitor) 48 49 { 49 50 wrapped().cachedStateForGC().visit(visitor); 50 51 } 51 52 53 DEFINE_VISIT_ADDITIONAL_CHILDREN(JSHistory); 54 52 55 } // namespace WebCore -
trunk/Source/WebCore/bindings/js/JSIDBCursorCustom.cpp
r251425 r273138 1 1 /* 2 * Copyright (C) 2016 Apple Inc. All rights reserved.2 * Copyright (C) 2016-2021 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 51 51 } 52 52 53 void JSIDBCursor::visitAdditionalChildren(SlotVisitor& visitor) 53 template<typename Visitor> 54 void JSIDBCursor::visitAdditionalChildren(Visitor& visitor) 54 55 { 55 56 auto& cursor = wrapped(); … … 59 60 cursor.primaryKeyWrapper().visit(visitor); 60 61 } 62 63 DEFINE_VISIT_ADDITIONAL_CHILDREN(JSIDBCursor); 61 64 62 65 JSValue toJSNewlyCreated(JSC::JSGlobalObject*, JSDOMGlobalObject* globalObject, Ref<IDBCursor>&& cursor) -
trunk/Source/WebCore/bindings/js/JSIDBCursorWithValueCustom.cpp
r251425 r273138 1 1 /* 2 * Copyright (C) 2016 Apple Inc. All rights reserved.2 * Copyright (C) 2016-2021 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 44 44 } 45 45 46 void JSIDBCursorWithValue::visitAdditionalChildren(SlotVisitor& visitor) 46 template<typename Visitor> 47 void JSIDBCursorWithValue::visitAdditionalChildren(Visitor& visitor) 47 48 { 48 49 JSIDBCursor::visitAdditionalChildren(visitor); … … 50 51 } 51 52 53 DEFINE_VISIT_ADDITIONAL_CHILDREN(JSIDBCursorWithValue); 54 52 55 } // namespace WebCore 53 56 -
trunk/Source/WebCore/bindings/js/JSIDBIndexCustom.cpp
r228218 r273138 1 1 /* 2 * Copyright (C) 2016 Apple Inc. All rights reserved.2 * Copyright (C) 2016-2021 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 35 35 using namespace JSC; 36 36 37 void JSIDBIndex::visitAdditionalChildren(SlotVisitor& visitor) 37 template<typename Visitor> 38 void JSIDBIndex::visitAdditionalChildren(Visitor& visitor) 38 39 { 39 40 visitor.addOpaqueRoot(static_cast<IDBIndex&>(wrapped()).objectStoreAsOpaqueRoot()); 40 41 } 41 42 43 DEFINE_VISIT_ADDITIONAL_CHILDREN(JSIDBIndex); 44 42 45 } // namespace WebCore 43 46 -
trunk/Source/WebCore/bindings/js/JSIDBObjectStoreCustom.cpp
r223476 r273138 1 1 /* 2 2 * Copyright (C) 2012 Michael Pruett <michael@68k.org> 3 * Copyright (C) 2021 Apple Inc. All rights reserved. 3 4 * 4 5 * Redistribution and use in source and binary forms, with or without … … 37 38 using namespace JSC; 38 39 39 void JSIDBObjectStore::visitAdditionalChildren(SlotVisitor& visitor) 40 template<typename Visitor> 41 void JSIDBObjectStore::visitAdditionalChildren(Visitor& visitor) 40 42 { 41 43 static_cast<IDBObjectStore&>(wrapped()).visitReferencedIndexes(visitor); 42 44 } 43 45 44 } 46 DEFINE_VISIT_ADDITIONAL_CHILDREN(JSIDBObjectStore); 47 48 } // namespace WebCore 45 49 46 50 #endif -
trunk/Source/WebCore/bindings/js/JSIDBRequestCustom.cpp
r251425 r273138 1 1 /* 2 * Copyright (C) 2019 Apple Inc. All rights reserved.2 * Copyright (C) 2019-2021 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 90 90 } 91 91 92 void JSIDBRequest::visitAdditionalChildren(SlotVisitor& visitor) 92 template<typename Visitor> 93 void JSIDBRequest::visitAdditionalChildren(Visitor& visitor) 93 94 { 94 95 auto& request = wrapped(); … … 97 98 } 98 99 99 } 100 DEFINE_VISIT_ADDITIONAL_CHILDREN(JSIDBRequest); 101 102 } // namespace WebCore 103 100 104 #endif // ENABLE(INDEXED_DATABASE) -
trunk/Source/WebCore/bindings/js/JSIDBTransactionCustom.cpp
r223476 r273138 1 1 /* 2 * Copyright (C) 2016 Apple Inc. All rights reserved.2 * Copyright (C) 2016-2021 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 35 35 using namespace JSC; 36 36 37 void JSIDBTransaction::visitAdditionalChildren(SlotVisitor& visitor) 37 template<typename Visitor> 38 void JSIDBTransaction::visitAdditionalChildren(Visitor& visitor) 38 39 { 39 40 static_cast<IDBTransaction&>(wrapped()).visitReferencedObjectStores(visitor); 40 41 } 41 42 42 } 43 DEFINE_VISIT_ADDITIONAL_CHILDREN(JSIDBTransaction); 44 45 } // namespace WebCore 43 46 44 47 #endif -
trunk/Source/WebCore/bindings/js/JSIntersectionObserverCustom.cpp
r269141 r273138 1 1 /* 2 2 * Copyright (C) 2020 Igalia S.L. 3 * Copyright (C) 2021 Apple Inc. All rights reserved. 3 4 * 4 5 * Redistribution and use in source and binary forms, with or without … … 31 32 namespace WebCore { 32 33 33 void JSIntersectionObserver::visitAdditionalChildren(JSC::SlotVisitor& visitor) 34 template<typename Visitor> 35 void JSIntersectionObserver::visitAdditionalChildren(Visitor& visitor) 34 36 { 35 37 if (auto* callback = wrapped().callbackConcurrently()) … … 37 39 } 38 40 39 } 41 DEFINE_VISIT_ADDITIONAL_CHILDREN(JSIntersectionObserver); 42 43 } // namespace WebCore -
trunk/Source/WebCore/bindings/js/JSIntersectionObserverEntryCustom.cpp
r237929 r273138 1 1 /* 2 2 * Copyright (C) 2018 Google LLC. All rights reserved. 3 * Copyright (C) 2021 Apple Inc. All rights reserved. 3 4 * 4 5 * Redistribution and use in source and binary forms, with or without … … 31 32 namespace WebCore { 32 33 33 void JSIntersectionObserverEntry::visitAdditionalChildren(JSC::SlotVisitor& visitor) 34 template<typename Visitor> 35 void JSIntersectionObserverEntry::visitAdditionalChildren(Visitor& visitor) 34 36 { 35 37 visitor.addOpaqueRoot(root(wrapped().target())); … … 39 41 } 40 42 41 } 43 DEFINE_VISIT_ADDITIONAL_CHILDREN(JSIntersectionObserverEntry); 44 45 } // namespace WebCore -
trunk/Source/WebCore/bindings/js/JSMessageChannelCustom.cpp
r228218 r273138 1 1 /* 2 * Copyright (C) 2008 , 2009Apple Inc. All Rights Reserved.2 * Copyright (C) 2008-2021 Apple Inc. All Rights Reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 34 34 namespace WebCore { 35 35 36 void JSMessageChannel::visitAdditionalChildren(JSC::SlotVisitor& visitor) 36 template<typename Visitor> 37 void JSMessageChannel::visitAdditionalChildren(Visitor& visitor) 37 38 { 38 39 if (MessagePort* port = wrapped().port1()) … … 43 44 } 44 45 46 DEFINE_VISIT_ADDITIONAL_CHILDREN(JSMessageChannel); 47 45 48 } // namespace WebCore 46 49 -
trunk/Source/WebCore/bindings/js/JSMessageEventCustom.cpp
r251425 r273138 1 1 /* 2 2 * Copyright (C) 2009 Google Inc. All rights reserved. 3 * Copyright (C) 2009-20 18Apple Inc. All rights reserved.3 * Copyright (C) 2009-2021 Apple Inc. All rights reserved. 4 4 * 5 5 * Redistribution and use in source and binary forms, with or without … … 71 71 } 72 72 73 void JSMessageEvent::visitAdditionalChildren(JSC::SlotVisitor& visitor) 73 template<typename Visitor> 74 void JSMessageEvent::visitAdditionalChildren(Visitor& visitor) 74 75 { 75 76 WTF::switchOn(wrapped().data(), [&visitor] (const JSValueInWrappedObject& data) { … … 85 86 } 86 87 88 DEFINE_VISIT_ADDITIONAL_CHILDREN(JSMessageEvent); 89 87 90 } // namespace WebCore -
trunk/Source/WebCore/bindings/js/JSMessagePortCustom.cpp
r223476 r273138 1 1 /* 2 * Copyright (C) 2008-20 09, 2016Apple Inc. All Rights Reserved.2 * Copyright (C) 2008-2021 Apple Inc. All Rights Reserved. 3 3 * Copyright (C) 2011 Google Inc. All Rights Reserved. 4 4 * … … 32 32 using namespace JSC; 33 33 34 void JSMessagePort::visitAdditionalChildren(SlotVisitor& visitor) 34 template<typename Visitor> 35 void JSMessagePort::visitAdditionalChildren(Visitor& visitor) 35 36 { 36 37 // If we have a locally entangled port, we can directly mark it as reachable. Ports that are remotely entangled are marked in-use by markActiveObjectsForContext(). … … 39 40 } 40 41 42 DEFINE_VISIT_ADDITIONAL_CHILDREN(JSMessagePort); 43 41 44 } // namespace WebCore -
trunk/Source/WebCore/bindings/js/JSMutationObserverCustom.cpp
r235271 r273138 1 1 /* 2 2 * Copyright (C) 2011 Google Inc. All rights reserved. 3 * Copyright (C) 2016 Apple Inc. All rights reserved.3 * Copyright (C) 2016-2021 Apple Inc. All rights reserved. 4 4 * 5 5 * Redistribution and use in source and binary forms, with or without … … 40 40 using namespace JSC; 41 41 42 void JSMutationObserver::visitAdditionalChildren(JSC::SlotVisitor& visitor) 42 template<typename Visitor> 43 void JSMutationObserver::visitAdditionalChildren(Visitor& visitor) 43 44 { 44 45 wrapped().callback().visitJSFunction(visitor); 45 46 } 46 47 47 bool JSMutationObserverOwner::isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown> handle, void*, SlotVisitor& visitor, const char**reason) 48 DEFINE_VISIT_ADDITIONAL_CHILDREN(JSMutationObserver); 49 50 bool JSMutationObserverOwner::isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown> handle, void*, AbstractSlotVisitor& visitor, const char**reason) 48 51 { 49 52 for (auto* node : jsCast<JSMutationObserver*>(handle.slot()->asCell())->wrapped().observedNodes()) { -
trunk/Source/WebCore/bindings/js/JSMutationRecordCustom.cpp
r236850 r273138 1 1 /* 2 * Copyright (C) 2018 Apple Inc. All rights reserved.2 * Copyright (C) 2018-2021 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 31 31 namespace WebCore { 32 32 33 void JSMutationRecord::visitAdditionalChildren(JSC::SlotVisitor& visitor) 33 template<typename Visitor> 34 void JSMutationRecord::visitAdditionalChildren(Visitor& visitor) 34 35 { 35 36 wrapped().visitNodesConcurrently(visitor); 36 37 } 37 38 39 DEFINE_VISIT_ADDITIONAL_CHILDREN(JSMutationRecord); 40 38 41 } // namespace WebCore -
trunk/Source/WebCore/bindings/js/JSNavigatorCustom.cpp
r260744 r273138 1 1 /* 2 * Copyright (C) 2017 Apple Inc. All rights reserved.2 * Copyright (C) 2017-2021 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 33 33 namespace WebCore { 34 34 35 void JSNavigator::visitAdditionalChildren(JSC::SlotVisitor& visitor) 35 template<typename Visitor> 36 void JSNavigator::visitAdditionalChildren(Visitor& visitor) 36 37 { 37 38 visitor.addOpaqueRoot(static_cast<NavigatorBase*>(&wrapped())); 38 39 } 40 41 DEFINE_VISIT_ADDITIONAL_CHILDREN(JSNavigator); 39 42 40 43 #if ENABLE(MEDIA_STREAM) -
trunk/Source/WebCore/bindings/js/JSNodeCustom.cpp
r253227 r273138 1 1 /* 2 * Copyright (C) 2007 , 2009-2010, 2016Apple Inc. All rights reserved.2 * Copyright (C) 2007-2021 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 75 75 using namespace HTMLNames; 76 76 77 static inline bool isReachableFromDOM(Node* node, SlotVisitor& visitor, const char** reason)77 static inline bool isReachableFromDOM(Node* node, AbstractSlotVisitor& visitor, const char** reason) 78 78 { 79 79 if (!node->isConnected()) { … … 124 124 } 125 125 126 bool JSNodeOwner::isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown> handle, void*, SlotVisitor& visitor, const char** reason)126 bool JSNodeOwner::isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown> handle, void*, AbstractSlotVisitor& visitor, const char** reason) 127 127 { 128 128 JSNode* jsNode = jsCast<JSNode*>(handle.slot()->asCell()); … … 137 137 } 138 138 139 void JSNode::visitAdditionalChildren(SlotVisitor& visitor) 139 template<typename Visitor> 140 void JSNode::visitAdditionalChildren(Visitor& visitor) 140 141 { 141 142 visitor.addOpaqueRoot(root(wrapped())); 142 143 } 144 145 DEFINE_VISIT_ADDITIONAL_CHILDREN(JSNode); 143 146 144 147 static ALWAYS_INLINE JSValue createWrapperInline(JSGlobalObject* lexicalGlobalObject, JSDOMGlobalObject* globalObject, Ref<Node>&& node) -
trunk/Source/WebCore/bindings/js/JSNodeIteratorCustom.cpp
r228218 r273138 1 1 /* 2 * Copyright (C) 2006 , 2008, 2009Apple Inc. All rights reserved.2 * Copyright (C) 2006-2021 Apple Inc. All rights reserved. 3 3 * 4 4 * This library is free software; you can redistribute it and/or … … 26 26 namespace WebCore { 27 27 28 void JSNodeIterator::visitAdditionalChildren(JSC::SlotVisitor& visitor) 28 template<typename Visitor> 29 void JSNodeIterator::visitAdditionalChildren(Visitor& visitor) 29 30 { 30 31 if (NodeFilter* filter = wrapped().filter()) … … 32 33 } 33 34 34 } 35 DEFINE_VISIT_ADDITIONAL_CHILDREN(JSNodeIterator); 36 37 } // namespace WebCore -
trunk/Source/WebCore/bindings/js/JSNodeListCustom.cpp
r251425 r273138 1 1 /* 2 * Copyright (C) 2007-20 19Apple Inc. All rights reserved.2 * Copyright (C) 2007-2021 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 38 38 using namespace JSC; 39 39 40 bool JSNodeListOwner::isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown> handle, void*, SlotVisitor& visitor, const char** reason)40 bool JSNodeListOwner::isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown> handle, void*, AbstractSlotVisitor& visitor, const char** reason) 41 41 { 42 42 JSNodeList* jsNodeList = jsCast<JSNodeList*>(handle.slot()->asCell()); -
trunk/Source/WebCore/bindings/js/JSOffscreenCanvasRenderingContext2DCustom.cpp
r251630 r273138 1 1 /* 2 * Copyright (C) 2017 Apple Inc. All rights reserved.2 * Copyright (C) 2017-2021 Apple Inc. All rights reserved. 3 3 * 4 4 * This library is free software; you can redistribute it and/or … … 32 32 } 33 33 34 bool JSOffscreenCanvasRenderingContext2DOwner::isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown> handle, void*, SlotVisitor& visitor, const char** reason)34 bool JSOffscreenCanvasRenderingContext2DOwner::isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown> handle, void*, AbstractSlotVisitor& visitor, const char** reason) 35 35 { 36 36 if (UNLIKELY(reason)) … … 42 42 } 43 43 44 void JSOffscreenCanvasRenderingContext2D::visitAdditionalChildren(SlotVisitor& visitor) 44 template<typename Visitor> 45 void JSOffscreenCanvasRenderingContext2D::visitAdditionalChildren(Visitor& visitor) 45 46 { 46 47 visitor.addOpaqueRoot(root(&wrapped().canvas())); 47 48 } 48 49 50 DEFINE_VISIT_ADDITIONAL_CHILDREN(JSOffscreenCanvasRenderingContext2D); 51 49 52 } // namespace WebCore 50 53 -
trunk/Source/WebCore/bindings/js/JSPaintRenderingContext2DCustom.cpp
r237344 r273138 1 1 /* 2 * Copyright (C) 2018 Apple Inc. All rights reserved.2 * Copyright (C) 2018-2021 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 37 37 } 38 38 39 bool JSPaintRenderingContext2DOwner::isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown> handle, void*, SlotVisitor& visitor, const char** reason)39 bool JSPaintRenderingContext2DOwner::isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown> handle, void*, AbstractSlotVisitor& visitor, const char** reason) 40 40 { 41 41 if (UNLIKELY(reason)) … … 47 47 } 48 48 49 void JSPaintRenderingContext2D::visitAdditionalChildren(SlotVisitor& visitor) 49 template<typename Visitor> 50 void JSPaintRenderingContext2D::visitAdditionalChildren(Visitor& visitor) 50 51 { 51 52 visitor.addOpaqueRoot(root(&wrapped().canvas())); 52 53 } 53 54 55 DEFINE_VISIT_ADDITIONAL_CHILDREN(JSPaintRenderingContext2D); 56 54 57 } // namespace WebCore 55 58 #endif -
trunk/Source/WebCore/bindings/js/JSPaintWorkletGlobalScopeCustom.cpp
r238686 r273138 1 1 /* 2 * Copyright (C) 2018 Apple Inc. All rights reserved.2 * Copyright (C) 2018-2021 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 32 32 using namespace JSC; 33 33 34 void JSPaintWorkletGlobalScope::visitAdditionalChildren(JSC::SlotVisitor& visitor) 34 template<typename Visitor> 35 void JSPaintWorkletGlobalScope::visitAdditionalChildren(Visitor& visitor) 35 36 { 36 37 auto locker = holdLock(wrapped().paintDefinitionLock()); … … 41 42 } 42 43 43 } 44 DEFINE_VISIT_ADDITIONAL_CHILDREN(JSPaintWorkletGlobalScope); 45 46 } // namespace WebCore 47 44 48 #endif -
trunk/Source/WebCore/bindings/js/JSPaymentMethodChangeEventCustom.cpp
r251425 r273138 1 1 /* 2 * Copyright (C) 2018 Apple Inc. All rights reserved.2 * Copyright (C) 2018-2021 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 42 42 } 43 43 44 void JSPaymentMethodChangeEvent::visitAdditionalChildren(JSC::SlotVisitor& visitor) 44 template<typename Visitor> 45 void JSPaymentMethodChangeEvent::visitAdditionalChildren(Visitor& visitor) 45 46 { 46 47 WTF::switchOn(wrapped().methodDetails(), [&visitor](const JSValueInWrappedObject& methodDetails) { … … 52 53 } 53 54 55 DEFINE_VISIT_ADDITIONAL_CHILDREN(JSPaymentMethodChangeEvent); 56 54 57 } // namespace WebCore 55 58 -
trunk/Source/WebCore/bindings/js/JSPaymentResponseCustom.cpp
r251425 r273138 1 1 /* 2 * Copyright (C) 2018 Apple Inc. All rights reserved.2 * Copyright (C) 2018-2021 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 38 38 } 39 39 40 void JSPaymentResponse::visitAdditionalChildren(JSC::SlotVisitor& visitor) 40 template<typename Visitor> 41 void JSPaymentResponse::visitAdditionalChildren(Visitor& visitor) 41 42 { 42 43 wrapped().cachedDetails().visit(visitor); 43 44 } 44 45 46 DEFINE_VISIT_ADDITIONAL_CHILDREN(JSPaymentResponse); 47 45 48 } // namespace WebCore 46 49 -
trunk/Source/WebCore/bindings/js/JSPerformanceObserverCustom.cpp
r244225 r273138 1 1 /* 2 * Copyright (C) 2018 Apple Inc. All rights reserved.2 * Copyright (C) 2018-2021 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 32 32 namespace WebCore { 33 33 34 void JSPerformanceObserver::visitAdditionalChildren(JSC::SlotVisitor& visitor) 34 template<typename Visitor> 35 void JSPerformanceObserver::visitAdditionalChildren(Visitor& visitor) 35 36 { 36 37 wrapped().callback().visitJSFunction(visitor); 37 38 } 38 39 39 bool JSPerformanceObserverOwner::isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown> handle, void*, JSC::SlotVisitor&, const char** reason) 40 DEFINE_VISIT_ADDITIONAL_CHILDREN(JSPerformanceObserver); 41 42 bool JSPerformanceObserverOwner::isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown> handle, void*, JSC::AbstractSlotVisitor&, const char** reason) 40 43 { 41 44 if (UNLIKELY(reason)) -
trunk/Source/WebCore/bindings/js/JSPopStateEventCustom.cpp
r251425 r273138 1 1 /* 2 2 * Copyright (C) 2011 Google Inc. All rights reserved. 3 * Copyright (C) 2021 Apple Inc. All rights reserved. 3 4 * 4 5 * Redistribution and use in source and binary forms, with or without … … 91 92 } 92 93 93 void JSPopStateEvent::visitAdditionalChildren(JSC::SlotVisitor& visitor) 94 template<typename Visitor> 95 void JSPopStateEvent::visitAdditionalChildren(Visitor& visitor) 94 96 { 95 97 wrapped().state().visit(visitor); 96 98 } 97 99 100 DEFINE_VISIT_ADDITIONAL_CHILDREN(JSPopStateEvent); 101 98 102 } // namespace WebCore -
trunk/Source/WebCore/bindings/js/JSPromiseRejectionEventCustom.cpp
r234846 r273138 1 1 /* 2 2 * Copyright (C) 2018 Yusuke Suzuki <yusukesuzuki@slowstart.org>. 3 * Copyright (C) 2021 Apple Inc. All rights reserved. 3 4 * 4 5 * Redistribution and use in source and binary forms, with or without … … 33 34 namespace WebCore { 34 35 35 void JSPromiseRejectionEvent::visitAdditionalChildren(JSC::SlotVisitor& visitor) 36 template<typename Visitor> 37 void JSPromiseRejectionEvent::visitAdditionalChildren(Visitor& visitor) 36 38 { 37 39 wrapped().reason().visit(visitor); 38 40 } 39 41 42 DEFINE_VISIT_ADDITIONAL_CHILDREN(JSPromiseRejectionEvent); 43 40 44 } // namespace WebCore -
trunk/Source/WebCore/bindings/js/JSResizeObserverCustom.cpp
r268860 r273138 1 1 /* 2 2 * Copyright (C) 2020 Igalia S.L. 3 * Copyright (C) 2021 Apple Inc. All rights reserved. 3 4 * 4 5 * Redistribution and use in source and binary forms, with or without … … 31 32 namespace WebCore { 32 33 33 void JSResizeObserver::visitAdditionalChildren(JSC::SlotVisitor& visitor) 34 template<typename Visitor> 35 void JSResizeObserver::visitAdditionalChildren(Visitor& visitor) 34 36 { 35 37 ResizeObserverCallback* callback = wrapped().callbackConcurrently(); … … 38 40 } 39 41 40 } 42 DEFINE_VISIT_ADDITIONAL_CHILDREN(JSResizeObserver); 43 44 } // namespace WebCore -
trunk/Source/WebCore/bindings/js/JSResizeObserverEntryCustom.cpp
r246057 r273138 1 1 /* 2 2 * Copyright (C) 2019 Igalia S.L. 3 * Copyright (C) 2021 Apple Inc. All rights reserved. 3 4 * 4 5 * Redistribution and use in source and binary forms, with or without … … 31 32 namespace WebCore { 32 33 33 void JSResizeObserverEntry::visitAdditionalChildren(JSC::SlotVisitor& visitor) 34 template<typename Visitor> 35 void JSResizeObserverEntry::visitAdditionalChildren(Visitor& visitor) 34 36 { 35 37 visitor.addOpaqueRoot(root(wrapped().target())); … … 37 39 } 38 40 39 } 41 DEFINE_VISIT_ADDITIONAL_CHILDREN(JSResizeObserverEntry); 42 43 } // namespace WebCore -
trunk/Source/WebCore/bindings/js/JSSVGViewSpecCustom.cpp
r239070 r273138 1 1 /* 2 * Copyright (C) 2018 Apple Inc. All rights reserved.2 * Copyright (C) 2018-2021 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 31 31 namespace WebCore { 32 32 33 void JSSVGViewSpec::visitAdditionalChildren(JSC::SlotVisitor& visitor) 33 template<typename Visitor> 34 void JSSVGViewSpec::visitAdditionalChildren(Visitor& visitor) 34 35 { 35 36 ASSERT(wrapped().contextElementConcurrently().get()); … … 37 38 } 38 39 39 } 40 DEFINE_VISIT_ADDITIONAL_CHILDREN(JSSVGViewSpec); 41 42 } // namespace WebCore -
trunk/Source/WebCore/bindings/js/JSServiceWorkerGlobalScopeCustom.cpp
r225296 r273138 1 1 /* 2 * Copyright (C) 2017 Apple Inc. All rights reserved.2 * Copyright (C) 2017-2021 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 35 35 using namespace JSC; 36 36 37 void JSServiceWorkerGlobalScope::visitAdditionalChildren(SlotVisitor& visitor) 37 template<typename Visitor> 38 void JSServiceWorkerGlobalScope::visitAdditionalChildren(Visitor& visitor) 38 39 { 39 40 visitor.addOpaqueRoot(&wrapped().clients()); … … 41 42 } 42 43 44 DEFINE_VISIT_ADDITIONAL_CHILDREN(JSServiceWorkerGlobalScope); 45 43 46 } // namespace WebCore 44 47 -
trunk/Source/WebCore/bindings/js/JSStaticRangeCustom.cpp
r272114 r273138 31 31 namespace WebCore { 32 32 33 void JSStaticRange::visitAdditionalChildren(JSC::SlotVisitor& visitor) 33 template<typename Visitor> 34 void JSStaticRange::visitAdditionalChildren(Visitor& visitor) 34 35 { 35 36 wrapped().visitNodesConcurrently(visitor); 36 37 } 37 38 39 DEFINE_VISIT_ADDITIONAL_CHILDREN(JSStaticRange); 40 38 41 } // namespace WebCore -
trunk/Source/WebCore/bindings/js/JSStyleSheetCustom.cpp
r251425 r273138 1 1 /* 2 * Copyright (C) 2007 , 2008, 2009Apple Inc. All rights reserved.2 * Copyright (C) 2007-2021 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 31 31 namespace WebCore { 32 32 33 void JSStyleSheet::visitAdditionalChildren(JSC::SlotVisitor& visitor) 33 template<typename Visitor> 34 void JSStyleSheet::visitAdditionalChildren(Visitor& visitor) 34 35 { 35 36 visitor.addOpaqueRoot(root(&wrapped())); 36 37 } 38 39 DEFINE_VISIT_ADDITIONAL_CHILDREN(JSStyleSheet); 37 40 38 41 JSC::JSValue toJSNewlyCreated(JSC::JSGlobalObject*, JSDOMGlobalObject* globalObject, Ref<StyleSheet>&& styleSheet) -
trunk/Source/WebCore/bindings/js/JSTextTrackCueCustom.cpp
r262695 r273138 1 1 /* 2 * Copyright (C) 2011 Apple Inc. All rights reserved.2 * Copyright (C) 2011-2021 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 39 39 using namespace JSC; 40 40 41 bool JSTextTrackCueOwner::isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown> handle, void*, SlotVisitor& visitor, const char** reason)41 bool JSTextTrackCueOwner::isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown> handle, void*, AbstractSlotVisitor& visitor, const char** reason) 42 42 { 43 43 JSTextTrackCue* jsTextTrackCue = jsCast<JSTextTrackCue*>(handle.slot()->asCell()); … … 83 83 } 84 84 85 void JSTextTrackCue::visitAdditionalChildren(SlotVisitor& visitor) 85 template<typename Visitor> 86 void JSTextTrackCue::visitAdditionalChildren(Visitor& visitor) 86 87 { 87 88 if (TextTrack* textTrack = wrapped().track()) … … 89 90 } 90 91 92 DEFINE_VISIT_ADDITIONAL_CHILDREN(JSTextTrackCue); 93 91 94 } // namespace WebCore 92 95 -
trunk/Source/WebCore/bindings/js/JSTextTrackCustom.cpp
r262695 r273138 1 1 /* 2 * Copyright (C) 2011 Apple Inc. All rights reserved.2 * Copyright (C) 2011-2021 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 37 37 using namespace JSC; 38 38 39 void JSTextTrack::visitAdditionalChildren(SlotVisitor& visitor) 39 template<typename Visitor> 40 void JSTextTrack::visitAdditionalChildren(Visitor& visitor) 40 41 { 41 42 visitor.addOpaqueRoot(root(&wrapped())); 42 43 } 43 44 45 DEFINE_VISIT_ADDITIONAL_CHILDREN(JSTextTrack); 46 44 47 } // namespace WebCore 45 48 -
trunk/Source/WebCore/bindings/js/JSTextTrackListCustom.cpp
r262695 r273138 1 1 /* 2 * Copyright (C) 2011 Apple Inc. All rights reserved.2 * Copyright (C) 2011-2021 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 37 37 using namespace JSC; 38 38 39 void JSTextTrackList::visitAdditionalChildren(JSC::SlotVisitor& visitor) 39 template<typename Visitor> 40 void JSTextTrackList::visitAdditionalChildren(Visitor& visitor) 40 41 { 41 42 visitor.addOpaqueRoot(root(wrapped().element())); 42 43 } 43 44 45 DEFINE_VISIT_ADDITIONAL_CHILDREN(JSTextTrackList); 46 44 47 } // namespace WebCore 45 48 -
trunk/Source/WebCore/bindings/js/JSTreeWalkerCustom.cpp
r228218 r273138 1 1 /* 2 * Copyright (C) 2006 , 2008, 2009Apple Inc. All rights reserved.2 * Copyright (C) 2006-2021 Apple Inc. All rights reserved. 3 3 * 4 4 * This library is free software; you can redistribute it and/or … … 26 26 namespace WebCore { 27 27 28 void JSTreeWalker::visitAdditionalChildren(JSC::SlotVisitor& visitor) 28 template<typename Visitor> 29 void JSTreeWalker::visitAdditionalChildren(Visitor& visitor) 29 30 { 30 31 if (NodeFilter* filter = wrapped().filter()) … … 32 33 } 33 34 34 } 35 DEFINE_VISIT_ADDITIONAL_CHILDREN(JSTreeWalker); 36 37 } // namespace WebCore -
trunk/Source/WebCore/bindings/js/JSUndoItemCustom.cpp
r241253 r273138 1 1 /* 2 * Copyright (C) 2019 Apple Inc. All rights reserved.2 * Copyright (C) 2019-2021 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 30 30 namespace WebCore { 31 31 32 void JSUndoItem::visitAdditionalChildren(JSC::SlotVisitor& visitor) 32 template<typename Visitor> 33 void JSUndoItem::visitAdditionalChildren(Visitor& visitor) 33 34 { 34 35 wrapped().undoHandler().visitJSFunction(visitor); … … 36 37 } 37 38 38 bool JSUndoItemOwner::isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown> handle, void*, JSC::SlotVisitor& visitor, const char** reason) 39 DEFINE_VISIT_ADDITIONAL_CHILDREN(JSUndoItem); 40 41 bool JSUndoItemOwner::isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown> handle, void*, JSC::AbstractSlotVisitor& visitor, const char** reason) 39 42 { 40 43 if (UNLIKELY(reason)) -
trunk/Source/WebCore/bindings/js/JSValueInWrappedObject.h
r251425 r273138 1 1 /* 2 * Copyright (C) 2018 Apple Inc. All rights reserved.2 * Copyright (C) 2018-2021 Apple Inc. All rights reserved. 3 3 4 4 * Redistribution and use in source and binary forms, with or without … … 41 41 explicit operator bool() const; 42 42 JSValueInWrappedObject& operator=(const JSValueInWrappedObject& other); 43 void visit(JSC::SlotVisitor&) const;43 template<typename Visitor> void visit(Visitor&) const; 44 44 void clear(); 45 45 … … 99 99 } 100 100 101 inline void JSValueInWrappedObject::visit(JSC::SlotVisitor& visitor) const 101 template<typename Visitor> 102 inline void JSValueInWrappedObject::visit(Visitor& visitor) const 102 103 { 103 104 return WTF::switchOn(m_value, [] (JSC::JSValue) { … … 107 108 }); 108 109 } 110 111 template void JSValueInWrappedObject::visit(JSC::AbstractSlotVisitor&) const; 112 template void JSValueInWrappedObject::visit(JSC::SlotVisitor&) const; 109 113 110 114 inline void JSValueInWrappedObject::clear() -
trunk/Source/WebCore/bindings/js/JSVideoTrackCustom.cpp
r262695 r273138 1 1 /* 2 * Copyright (C) 2011 Apple Inc. All rights reserved.2 * Copyright (C) 2011-2021 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 36 36 using namespace JSC; 37 37 38 void JSVideoTrack::visitAdditionalChildren(SlotVisitor& visitor) 38 template<typename Visitor> 39 void JSVideoTrack::visitAdditionalChildren(Visitor& visitor) 39 40 { 40 41 visitor.addOpaqueRoot(root(&wrapped())); 41 42 } 42 43 44 DEFINE_VISIT_ADDITIONAL_CHILDREN(JSVideoTrack); 45 43 46 } // namespace WebCore 44 47 -
trunk/Source/WebCore/bindings/js/JSVideoTrackListCustom.cpp
r262695 r273138 1 1 /* 2 * Copyright (C) 2011 Apple Inc. All rights reserved.2 * Copyright (C) 2011-2021 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 36 36 using namespace JSC; 37 37 38 void JSVideoTrackList::visitAdditionalChildren(SlotVisitor& visitor) 38 template<typename Visitor> 39 void JSVideoTrackList::visitAdditionalChildren(Visitor& visitor) 39 40 { 40 41 visitor.addOpaqueRoot(root(wrapped().element())); 41 42 } 42 43 44 DEFINE_VISIT_ADDITIONAL_CHILDREN(JSVideoTrackList); 45 43 46 } // namespace WebCore 44 47 -
trunk/Source/WebCore/bindings/js/JSWebGL2RenderingContextCustom.cpp
r265708 r273138 1 1 /* 2 * Copyright (C) 2015-20 17Apple Inc. All rights reserved.2 * Copyright (C) 2015-2021 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 34 34 using namespace JSC; 35 35 36 void JSWebGL2RenderingContext::visitAdditionalChildren(SlotVisitor& visitor) 36 template<typename Visitor> 37 void JSWebGL2RenderingContext::visitAdditionalChildren(Visitor& visitor) 37 38 { 38 39 visitor.addOpaqueRoot(&wrapped()); … … 40 41 } 41 42 43 DEFINE_VISIT_ADDITIONAL_CHILDREN(JSWebGL2RenderingContext); 44 42 45 } // namespace WebCore 43 46 -
trunk/Source/WebCore/bindings/js/JSWebGLRenderingContextCustom.cpp
r265708 r273138 1 1 /* 2 * Copyright (C) 2015 Apple Inc. All rights reserved.2 * Copyright (C) 2015-2021 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 34 34 using namespace JSC; 35 35 36 void JSWebGLRenderingContext::visitAdditionalChildren(SlotVisitor& visitor) 36 template<typename Visitor> 37 void JSWebGLRenderingContext::visitAdditionalChildren(Visitor& visitor) 37 38 { 38 39 visitor.addOpaqueRoot(&wrapped()); … … 40 41 } 41 42 43 DEFINE_VISIT_ADDITIONAL_CHILDREN(JSWebGLRenderingContext); 44 42 45 } // namespace WebCore 43 46 -
trunk/Source/WebCore/bindings/js/JSWorkerGlobalScopeBase.cpp
r271993 r273138 1 1 /* 2 * Copyright (C) 2008 , 2009, 2016Apple Inc. All rights reserved.2 * Copyright (C) 2008-2021 Apple Inc. All rights reserved. 3 3 * Copyright (C) 2009 Google Inc. All Rights Reserved. 4 4 * … … 93 93 } 94 94 95 void JSWorkerGlobalScopeBase::visitChildren(JSCell* cell, SlotVisitor& visitor) 95 template<typename Visitor> 96 void JSWorkerGlobalScopeBase::visitChildrenImpl(JSCell* cell, Visitor& visitor) 96 97 { 97 98 JSWorkerGlobalScopeBase* thisObject = jsCast<JSWorkerGlobalScopeBase*>(cell); … … 100 101 visitor.append(thisObject->m_proxy); 101 102 } 103 104 DEFINE_VISIT_CHILDREN(JSWorkerGlobalScopeBase); 102 105 103 106 void JSWorkerGlobalScopeBase::destroy(JSCell* cell) -
trunk/Source/WebCore/bindings/js/JSWorkerGlobalScopeBase.h
r268775 r273138 1 1 /* 2 * Copyright (C) 2008 , 2009Apple Inc. All rights reserved.2 * Copyright (C) 2008-2021 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 80 80 void finishCreation(JSC::VM&, JSC::JSProxy*); 81 81 82 static void visitChildren(JSC::JSCell*, JSC::SlotVisitor&);82 DECLARE_VISIT_CHILDREN; 83 83 84 84 private: -
trunk/Source/WebCore/bindings/js/JSWorkerGlobalScopeCustom.cpp
r260848 r273138 1 1 /* 2 * Copyright (C) 2008-20 09, 2011, 2016Apple Inc. All Rights Reserved.2 * Copyright (C) 2008-2021 Apple Inc. All Rights Reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 34 34 using namespace JSC; 35 35 36 void JSWorkerGlobalScope::visitAdditionalChildren(SlotVisitor& visitor) 36 template<typename Visitor> 37 void JSWorkerGlobalScope::visitAdditionalChildren(Visitor& visitor) 37 38 { 38 39 if (auto* location = wrapped().optionalLocation()) … … 48 49 wrapped().visitJSEventListeners(visitor); 49 50 } 51 52 DEFINE_VISIT_ADDITIONAL_CHILDREN(JSWorkerGlobalScope); 50 53 51 54 JSValue JSWorkerGlobalScope::queueMicrotask(JSGlobalObject& lexicalGlobalObject, CallFrame& callFrame) -
trunk/Source/WebCore/bindings/js/JSWorkerNavigatorCustom.cpp
r248276 r273138 1 1 /* 2 * Copyright (C) 2017 Apple Inc. All rights reserved.2 * Copyright (C) 2017-2021 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 29 29 namespace WebCore { 30 30 31 void JSWorkerNavigator::visitAdditionalChildren(JSC::SlotVisitor& visitor) 31 template<typename Visitor> 32 void JSWorkerNavigator::visitAdditionalChildren(Visitor& visitor) 32 33 { 33 34 visitor.addOpaqueRoot(static_cast<NavigatorBase*>(&wrapped())); 34 35 } 35 36 36 } 37 DEFINE_VISIT_ADDITIONAL_CHILDREN(JSWorkerNavigator); 38 39 } // namespace WebCore -
trunk/Source/WebCore/bindings/js/JSWorkletGlobalScopeBase.cpp
r271993 r273138 1 1 /* 2 * Copyright (C) 2018 Apple Inc. All rights reserved.2 * Copyright (C) 2018-2021 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 83 83 } 84 84 85 void JSWorkletGlobalScopeBase::visitChildren(JSCell* cell, SlotVisitor& visitor) 85 template<typename Visitor> 86 void JSWorkletGlobalScopeBase::visitChildrenImpl(JSCell* cell, Visitor& visitor) 86 87 { 87 88 auto* thisObject = jsCast<JSWorkletGlobalScopeBase*>(cell); … … 90 91 visitor.append(thisObject->m_proxy); 91 92 } 93 94 DEFINE_VISIT_CHILDREN(JSWorkletGlobalScopeBase); 92 95 93 96 void JSWorkletGlobalScopeBase::destroy(JSCell* cell) -
trunk/Source/WebCore/bindings/js/JSWorkletGlobalScopeBase.h
r268775 r273138 1 1 /* 2 * Copyright (C) 2018 Apple Inc. All rights reserved.2 * Copyright (C) 2018-2021 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 68 68 void finishCreation(JSC::VM&, JSC::JSProxy*); 69 69 70 static void visitChildren(JSC::JSCell*, JSC::SlotVisitor&);70 DECLARE_VISIT_CHILDREN; 71 71 72 72 private: -
trunk/Source/WebCore/bindings/js/JSXMLHttpRequestCustom.cpp
r251425 r273138 1 1 /* 2 * Copyright (C) 2008 , 2009Apple Inc. All rights reserved.2 * Copyright (C) 2008-2021 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 42 42 using namespace JSC; 43 43 44 void JSXMLHttpRequest::visitAdditionalChildren(SlotVisitor& visitor) 44 template<typename Visitor> 45 void JSXMLHttpRequest::visitAdditionalChildren(Visitor& visitor) 45 46 { 46 47 if (auto* upload = wrapped().optionalUpload()) … … 50 51 visitor.addOpaqueRoot(responseDocument); 51 52 } 53 54 DEFINE_VISIT_ADDITIONAL_CHILDREN(JSXMLHttpRequest); 52 55 53 56 JSValue JSXMLHttpRequest::response(JSGlobalObject& lexicalGlobalObject) const -
trunk/Source/WebCore/bindings/js/JSXPathResultCustom.cpp
r209812 r273138 1 1 /* 2 2 * Copyright (C) 2011 Julien Chaffraix <jchaffraix@webkit.org> 3 * Copyright (C) 2021 Apple Inc. All rights reserved. 3 4 * 4 5 * Redistribution and use in source and binary forms, with or without … … 32 33 namespace WebCore { 33 34 34 void JSXPathResult::visitAdditionalChildren(JSC::SlotVisitor& visitor) 35 template<typename Visitor> 36 void JSXPathResult::visitAdditionalChildren(Visitor& visitor) 35 37 { 36 38 auto& value = wrapped().value(); … … 42 44 } 43 45 46 DEFINE_VISIT_ADDITIONAL_CHILDREN(JSXPathResult); 47 44 48 } // namespace WebCore -
trunk/Source/WebCore/bindings/js/WebCoreTypedArrayController.cpp
r269974 r273138 1 1 /* 2 * Copyright (C) 2013 Apple Inc. All rights reserved.2 * Copyright (C) 2013-2021 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 57 57 } 58 58 59 bool WebCoreTypedArrayController::JSArrayBufferOwner::isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown> handle, void*, JSC:: SlotVisitor& visitor, const char** reason)59 bool WebCoreTypedArrayController::JSArrayBufferOwner::isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown> handle, void*, JSC::AbstractSlotVisitor& visitor, const char** reason) 60 60 { 61 61 if (UNLIKELY(reason)) -
trunk/Source/WebCore/bindings/js/WebCoreTypedArrayController.h
r269974 r273138 1 1 /* 2 * Copyright (C) 2013 Apple Inc. All rights reserved.2 * Copyright (C) 2013-2021 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 49 49 class JSArrayBufferOwner : public JSC::WeakHandleOwner { 50 50 public: 51 bool isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown>, void* context, JSC:: SlotVisitor&, const char**) override;51 bool isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown>, void* context, JSC::AbstractSlotVisitor&, const char**) override; 52 52 void finalize(JSC::Handle<JSC::Unknown>, void* context) override; 53 53 }; -
trunk/Source/WebCore/bindings/scripts/CodeGeneratorJS.pm
r273113 r273138 4 4 # Copyright (C) 2006, 2007 Samuel Weinig <sam@webkit.org> 5 5 # Copyright (C) 2006 Alexey Proskuryakov <ap@webkit.org> 6 # Copyright (C) 2006-202 0Apple Inc. All rights reserved.6 # Copyright (C) 2006-2021 Apple Inc. All rights reserved. 7 7 # Copyright (C) 2009 Cameron McCormack <cam@mcc.id.au> 8 8 # Copyright (C) Research In Motion Limited 2010. All rights reserved. … … 3088 3088 # visit function 3089 3089 if ($needsVisitChildren) { 3090 push(@headerContent, " static void visitChildren(JSCell*, JSC::SlotVisitor&);\n");3091 push(@headerContent, " void visitAdditionalChildren(JSC::SlotVisitor&);\n") if $interface->extendedAttributes->{JSCustomMarkFunction};3090 push(@headerContent, " DECLARE_VISIT_CHILDREN;\n"); 3091 push(@headerContent, " template<typename Visitor> void visitAdditionalChildren(Visitor&);\n") if $interface->extendedAttributes->{JSCustomMarkFunction}; 3092 3092 push(@headerContent, "\n"); 3093 3093 … … 3104 3104 # program resumed since the last call to visitChildren or visitOutputConstraints. Since 3105 3105 # this just calls visitAdditionalChildren, you usually don't have to worry about this. 3106 push(@headerContent, " static void visitOutputConstraints(JSCell*, JSC::SlotVisitor&);\n");3106 push(@headerContent, " template<typename Visitor> static void visitOutputConstraints(JSCell*, Visitor&);\n"); 3107 3107 } 3108 3108 } … … 3225 3225 $headerIncludes{"<wtf/NeverDestroyed.h>"} = 1; 3226 3226 push(@headerContent, "public:\n"); 3227 push(@headerContent, " bool isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown>, void* context, JSC:: SlotVisitor&, const char**) ${overrideDecl};\n");3227 push(@headerContent, " bool isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown>, void* context, JSC::AbstractSlotVisitor&, const char**) ${overrideDecl};\n"); 3228 3228 push(@headerContent, " void finalize(JSC::Handle<JSC::Unknown>, void* context) ${overrideDecl};\n"); 3229 3229 push(@headerContent, "};\n"); … … 4949 4949 AddToImplIncludes("WebCoreJSClientData.h"); 4950 4950 AddToImplIncludes("<JavaScriptCore/JSDestructibleObjectHeapCellType.h>"); 4951 AddToImplIncludes("<JavaScriptCore/SlotVisitorMacros.h>"); 4951 4952 AddToImplIncludes("<JavaScriptCore/SubspaceInlines.h>"); 4952 4953 push(@implContent, "JSC::IsoSubspace* ${className}::subspaceForImpl(JSC::VM& vm)\n"); … … 4968 4969 push(@implContent, "IGNORE_WARNINGS_BEGIN(\"unreachable-code\")\n"); 4969 4970 push(@implContent, "IGNORE_WARNINGS_BEGIN(\"tautological-compare\")\n"); 4970 push(@implContent, " if (&${className}::visitOutputConstraints != &JSC::JSCell::visitOutputConstraints)\n"); 4971 push(@implContent, " void (*myVisitOutputConstraint)(JSC::JSCell*, JSC::SlotVisitor&) = ${className}::visitOutputConstraints;\n"); 4972 push(@implContent, " void (*jsCellVisitOutputConstraint)(JSC::JSCell*, JSC::SlotVisitor&) = JSC::JSCell::visitOutputConstraints;\n"); 4973 push(@implContent, " if (myVisitOutputConstraint != jsCellVisitOutputConstraint)\n"); 4974 # push(@implContent, " if (&${className}::visitOutputConstraints != &JSC::JSCell::visitOutputConstraints)\n"); 4971 4975 push(@implContent, " clientData.outputConstraintSpaces().append(space);\n"); 4972 4976 push(@implContent, "IGNORE_WARNINGS_END\n"); … … 4976 4980 4977 4981 if ($needsVisitChildren) { 4978 push(@implContent, "void ${className}::visitChildren(JSCell* cell, SlotVisitor& visitor)\n"); 4982 push(@implContent, "template<typename Visitor>\n"); 4983 push(@implContent, "void ${className}::visitChildrenImpl(JSCell* cell, Visitor& visitor)\n"); 4979 4984 push(@implContent, "{\n"); 4980 4985 push(@implContent, " auto* thisObject = jsCast<${className}*>(cell);\n"); … … 5001 5006 } 5002 5007 push(@implContent, "}\n\n"); 5008 push(@implContent, "DEFINE_VISIT_CHILDREN(${className});\n\n"); 5009 5003 5010 if ($interface->extendedAttributes->{JSCustomMarkFunction}) { 5004 push(@implContent, "void ${className}::visitOutputConstraints(JSCell* cell, SlotVisitor& visitor)\n"); 5011 push(@implContent, "template<typename Visitor>\n"); 5012 push(@implContent, "void ${className}::visitOutputConstraints(JSCell* cell, Visitor& visitor)\n"); 5005 5013 push(@implContent, "{\n"); 5006 5014 push(@implContent, " auto* thisObject = jsCast<${className}*>(cell);\n"); … … 5009 5017 push(@implContent, " thisObject->visitAdditionalChildren(visitor);\n"); 5010 5018 push(@implContent, "}\n\n"); 5019 push(@implContent, "template void ${className}::visitOutputConstraints(JSCell*, AbstractSlotVisitor&);\n"); 5020 push(@implContent, "template void ${className}::visitOutputConstraints(JSCell*, SlotVisitor&);\n"); 5011 5021 } 5012 5022 } … … 5043 5053 5044 5054 if (ShouldGenerateWrapperOwnerCode($hasParent, $interface) && !GetCustomIsReachable($interface)) { 5045 push(@implContent, "bool JS${interfaceName}Owner::isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown> handle, void*, SlotVisitor& visitor, const char** reason)\n");5055 push(@implContent, "bool JS${interfaceName}Owner::isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown> handle, void*, AbstractSlotVisitor& visitor, const char** reason)\n"); 5046 5056 push(@implContent, "{\n"); 5047 5057 # All ActiveDOMObjects implement hasPendingActivity(), but not all of them … … 6442 6452 } 6443 6453 6454 push(@$contentRef, " void visitJSFunction(JSC::AbstractSlotVisitor&) override;\n\n") if $interfaceOrCallback->extendedAttributes->{IsWeakCallback}; 6444 6455 push(@$contentRef, " void visitJSFunction(JSC::SlotVisitor&) override;\n\n") if $interfaceOrCallback->extendedAttributes->{IsWeakCallback}; 6445 6456 … … 6633 6644 6634 6645 if ($interfaceOrCallback->extendedAttributes->{IsWeakCallback}) { 6646 push(@$contentRef, "void ${className}::visitJSFunction(JSC::AbstractSlotVisitor& visitor)\n"); 6647 push(@$contentRef, "{\n"); 6648 push(@$contentRef, " m_data->visitJSFunction(visitor);\n"); 6649 push(@$contentRef, "}\n\n"); 6635 6650 push(@$contentRef, "void ${className}::visitJSFunction(JSC::SlotVisitor& visitor)\n"); 6636 6651 push(@$contentRef, "{\n"); … … 6744 6759 6745 6760 AddToImplIncludes("JSDOMIterator.h"); 6761 AddToImplIncludes("<JavaScriptCore/SlotVisitorMacros.h>"); 6746 6762 6747 6763 return unless IsKeyValueIterableInterface($interface); … … 6787 6803 IGNORE_WARNINGS_BEGIN(\"unreachable-code\") 6788 6804 IGNORE_WARNINGS_BEGIN(\"tautological-compare\") 6789 if (&${iteratorName}::visitOutputConstraints != &JSC::JSCell::visitOutputConstraints) 6805 void (*myVisitOutputConstraint)(JSC::JSCell*, JSC::SlotVisitor&) = ${iteratorName}::visitOutputConstraints; 6806 void (*jsCellVisitOutputConstraint)(JSC::JSCell*, JSC::SlotVisitor&) = JSC::JSCell::visitOutputConstraints; 6807 if (myVisitOutputConstraint != jsCellVisitOutputConstraint) 6790 6808 clientData.outputConstraintSpaces().append(space); 6791 6809 IGNORE_WARNINGS_END -
trunk/Source/WebCore/bindings/scripts/test/JS/JSDOMWindow.cpp
r268990 r273138 46 46 #include <JavaScriptCore/JSCInlines.h> 47 47 #include <JavaScriptCore/JSDestructibleObjectHeapCellType.h> 48 #include <JavaScriptCore/SlotVisitorMacros.h> 48 49 #include <JavaScriptCore/SubspaceInlines.h> 49 50 #include <wtf/GetPtr.h> … … 520 521 IGNORE_WARNINGS_BEGIN("unreachable-code") 521 522 IGNORE_WARNINGS_BEGIN("tautological-compare") 522 if (&JSDOMWindow::visitOutputConstraints != &JSC::JSCell::visitOutputConstraints) 523 void (*myVisitOutputConstraint)(JSC::JSCell*, JSC::SlotVisitor&) = JSDOMWindow::visitOutputConstraints; 524 void (*jsCellVisitOutputConstraint)(JSC::JSCell*, JSC::SlotVisitor&) = JSC::JSCell::visitOutputConstraints; 525 if (myVisitOutputConstraint != jsCellVisitOutputConstraint) 523 526 clientData.outputConstraintSpaces().append(space); 524 527 IGNORE_WARNINGS_END -
trunk/Source/WebCore/bindings/scripts/test/JS/JSDedicatedWorkerGlobalScope.cpp
r268990 r273138 36 36 #include <JavaScriptCore/JSCInlines.h> 37 37 #include <JavaScriptCore/JSDestructibleObjectHeapCellType.h> 38 #include <JavaScriptCore/SlotVisitorMacros.h> 38 39 #include <JavaScriptCore/SubspaceInlines.h> 39 40 #include <wtf/GetPtr.h> … … 172 173 IGNORE_WARNINGS_BEGIN("unreachable-code") 173 174 IGNORE_WARNINGS_BEGIN("tautological-compare") 174 if (&JSDedicatedWorkerGlobalScope::visitOutputConstraints != &JSC::JSCell::visitOutputConstraints) 175 void (*myVisitOutputConstraint)(JSC::JSCell*, JSC::SlotVisitor&) = JSDedicatedWorkerGlobalScope::visitOutputConstraints; 176 void (*jsCellVisitOutputConstraint)(JSC::JSCell*, JSC::SlotVisitor&) = JSC::JSCell::visitOutputConstraints; 177 if (myVisitOutputConstraint != jsCellVisitOutputConstraint) 175 178 clientData.outputConstraintSpaces().append(space); 176 179 IGNORE_WARNINGS_END -
trunk/Source/WebCore/bindings/scripts/test/JS/JSExposedToWorkerAndWindow.cpp
r268990 r273138 39 39 #include <JavaScriptCore/JSDestructibleObjectHeapCellType.h> 40 40 #include <JavaScriptCore/ObjectConstructor.h> 41 #include <JavaScriptCore/SlotVisitorMacros.h> 41 42 #include <JavaScriptCore/SubspaceInlines.h> 42 43 #include <wtf/GetPtr.h> … … 258 259 IGNORE_WARNINGS_BEGIN("unreachable-code") 259 260 IGNORE_WARNINGS_BEGIN("tautological-compare") 260 if (&JSExposedToWorkerAndWindow::visitOutputConstraints != &JSC::JSCell::visitOutputConstraints) 261 void (*myVisitOutputConstraint)(JSC::JSCell*, JSC::SlotVisitor&) = JSExposedToWorkerAndWindow::visitOutputConstraints; 262 void (*jsCellVisitOutputConstraint)(JSC::JSCell*, JSC::SlotVisitor&) = JSC::JSCell::visitOutputConstraints; 263 if (myVisitOutputConstraint != jsCellVisitOutputConstraint) 261 264 clientData.outputConstraintSpaces().append(space); 262 265 IGNORE_WARNINGS_END … … 274 277 } 275 278 276 bool JSExposedToWorkerAndWindowOwner::isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown> handle, void*, SlotVisitor& visitor, const char** reason)279 bool JSExposedToWorkerAndWindowOwner::isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown> handle, void*, AbstractSlotVisitor& visitor, const char** reason) 277 280 { 278 281 UNUSED_PARAM(handle); -
trunk/Source/WebCore/bindings/scripts/test/JS/JSExposedToWorkerAndWindow.h
r270042 r273138 67 67 class JSExposedToWorkerAndWindowOwner final : public JSC::WeakHandleOwner { 68 68 public: 69 bool isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown>, void* context, JSC:: SlotVisitor&, const char**) final;69 bool isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown>, void* context, JSC::AbstractSlotVisitor&, const char**) final; 70 70 void finalize(JSC::Handle<JSC::Unknown>, void* context) final; 71 71 }; -
trunk/Source/WebCore/bindings/scripts/test/JS/JSPaintWorkletGlobalScope.cpp
r268990 r273138 36 36 #include <JavaScriptCore/JSCInlines.h> 37 37 #include <JavaScriptCore/JSDestructibleObjectHeapCellType.h> 38 #include <JavaScriptCore/SlotVisitorMacros.h> 38 39 #include <JavaScriptCore/SubspaceInlines.h> 39 40 #include <wtf/GetPtr.h> … … 172 173 IGNORE_WARNINGS_BEGIN("unreachable-code") 173 174 IGNORE_WARNINGS_BEGIN("tautological-compare") 174 if (&JSPaintWorkletGlobalScope::visitOutputConstraints != &JSC::JSCell::visitOutputConstraints) 175 void (*myVisitOutputConstraint)(JSC::JSCell*, JSC::SlotVisitor&) = JSPaintWorkletGlobalScope::visitOutputConstraints; 176 void (*jsCellVisitOutputConstraint)(JSC::JSCell*, JSC::SlotVisitor&) = JSC::JSCell::visitOutputConstraints; 177 if (myVisitOutputConstraint != jsCellVisitOutputConstraint) 175 178 clientData.outputConstraintSpaces().append(space); 176 179 IGNORE_WARNINGS_END -
trunk/Source/WebCore/bindings/scripts/test/JS/JSServiceWorkerGlobalScope.cpp
r268990 r273138 36 36 #include <JavaScriptCore/JSCInlines.h> 37 37 #include <JavaScriptCore/JSDestructibleObjectHeapCellType.h> 38 #include <JavaScriptCore/SlotVisitorMacros.h> 38 39 #include <JavaScriptCore/SubspaceInlines.h> 39 40 #include <wtf/GetPtr.h> … … 172 173 IGNORE_WARNINGS_BEGIN("unreachable-code") 173 174 IGNORE_WARNINGS_BEGIN("tautological-compare") 174 if (&JSServiceWorkerGlobalScope::visitOutputConstraints != &JSC::JSCell::visitOutputConstraints) 175 void (*myVisitOutputConstraint)(JSC::JSCell*, JSC::SlotVisitor&) = JSServiceWorkerGlobalScope::visitOutputConstraints; 176 void (*jsCellVisitOutputConstraint)(JSC::JSCell*, JSC::SlotVisitor&) = JSC::JSCell::visitOutputConstraints; 177 if (myVisitOutputConstraint != jsCellVisitOutputConstraint) 175 178 clientData.outputConstraintSpaces().append(space); 176 179 IGNORE_WARNINGS_END -
trunk/Source/WebCore/bindings/scripts/test/JS/JSTestCEReactions.cpp
r268990 r273138 42 42 #include <JavaScriptCore/JSCInlines.h> 43 43 #include <JavaScriptCore/JSDestructibleObjectHeapCellType.h> 44 #include <JavaScriptCore/SlotVisitorMacros.h> 44 45 #include <JavaScriptCore/SubspaceInlines.h> 45 46 #include <wtf/GetPtr.h> … … 452 453 IGNORE_WARNINGS_BEGIN("unreachable-code") 453 454 IGNORE_WARNINGS_BEGIN("tautological-compare") 454 if (&JSTestCEReactions::visitOutputConstraints != &JSC::JSCell::visitOutputConstraints) 455 void (*myVisitOutputConstraint)(JSC::JSCell*, JSC::SlotVisitor&) = JSTestCEReactions::visitOutputConstraints; 456 void (*jsCellVisitOutputConstraint)(JSC::JSCell*, JSC::SlotVisitor&) = JSC::JSCell::visitOutputConstraints; 457 if (myVisitOutputConstraint != jsCellVisitOutputConstraint) 455 458 clientData.outputConstraintSpaces().append(space); 456 459 IGNORE_WARNINGS_END … … 468 471 } 469 472 470 bool JSTestCEReactionsOwner::isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown> handle, void*, SlotVisitor& visitor, const char** reason)473 bool JSTestCEReactionsOwner::isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown> handle, void*, AbstractSlotVisitor& visitor, const char** reason) 471 474 { 472 475 UNUSED_PARAM(handle); -
trunk/Source/WebCore/bindings/scripts/test/JS/JSTestCEReactions.h
r270042 r273138 66 66 class JSTestCEReactionsOwner final : public JSC::WeakHandleOwner { 67 67 public: 68 bool isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown>, void* context, JSC:: SlotVisitor&, const char**) final;68 bool isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown>, void* context, JSC::AbstractSlotVisitor&, const char**) final; 69 69 void finalize(JSC::Handle<JSC::Unknown>, void* context) final; 70 70 }; -
trunk/Source/WebCore/bindings/scripts/test/JS/JSTestCEReactionsStringifier.cpp
r268990 r273138 38 38 #include <JavaScriptCore/JSCInlines.h> 39 39 #include <JavaScriptCore/JSDestructibleObjectHeapCellType.h> 40 #include <JavaScriptCore/SlotVisitorMacros.h> 40 41 #include <JavaScriptCore/SubspaceInlines.h> 41 42 #include <wtf/GetPtr.h> … … 277 278 IGNORE_WARNINGS_BEGIN("unreachable-code") 278 279 IGNORE_WARNINGS_BEGIN("tautological-compare") 279 if (&JSTestCEReactionsStringifier::visitOutputConstraints != &JSC::JSCell::visitOutputConstraints) 280 void (*myVisitOutputConstraint)(JSC::JSCell*, JSC::SlotVisitor&) = JSTestCEReactionsStringifier::visitOutputConstraints; 281 void (*jsCellVisitOutputConstraint)(JSC::JSCell*, JSC::SlotVisitor&) = JSC::JSCell::visitOutputConstraints; 282 if (myVisitOutputConstraint != jsCellVisitOutputConstraint) 280 283 clientData.outputConstraintSpaces().append(space); 281 284 IGNORE_WARNINGS_END … … 293 296 } 294 297 295 bool JSTestCEReactionsStringifierOwner::isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown> handle, void*, SlotVisitor& visitor, const char** reason)298 bool JSTestCEReactionsStringifierOwner::isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown> handle, void*, AbstractSlotVisitor& visitor, const char** reason) 296 299 { 297 300 UNUSED_PARAM(handle); -
trunk/Source/WebCore/bindings/scripts/test/JS/JSTestCEReactionsStringifier.h
r270042 r273138 66 66 class JSTestCEReactionsStringifierOwner final : public JSC::WeakHandleOwner { 67 67 public: 68 bool isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown>, void* context, JSC:: SlotVisitor&, const char**) final;68 bool isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown>, void* context, JSC::AbstractSlotVisitor&, const char**) final; 69 69 void finalize(JSC::Handle<JSC::Unknown>, void* context) final; 70 70 }; -
trunk/Source/WebCore/bindings/scripts/test/JS/JSTestCallTracer.cpp
r268990 r273138 45 45 #include <JavaScriptCore/JSCInlines.h> 46 46 #include <JavaScriptCore/JSDestructibleObjectHeapCellType.h> 47 #include <JavaScriptCore/SlotVisitorMacros.h> 47 48 #include <JavaScriptCore/SubspaceInlines.h> 48 49 #include <wtf/GetPtr.h> … … 538 539 IGNORE_WARNINGS_BEGIN("unreachable-code") 539 540 IGNORE_WARNINGS_BEGIN("tautological-compare") 540 if (&JSTestCallTracer::visitOutputConstraints != &JSC::JSCell::visitOutputConstraints) 541 void (*myVisitOutputConstraint)(JSC::JSCell*, JSC::SlotVisitor&) = JSTestCallTracer::visitOutputConstraints; 542 void (*jsCellVisitOutputConstraint)(JSC::JSCell*, JSC::SlotVisitor&) = JSC::JSCell::visitOutputConstraints; 543 if (myVisitOutputConstraint != jsCellVisitOutputConstraint) 541 544 clientData.outputConstraintSpaces().append(space); 542 545 IGNORE_WARNINGS_END … … 554 557 } 555 558 556 bool JSTestCallTracerOwner::isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown> handle, void*, SlotVisitor& visitor, const char** reason)559 bool JSTestCallTracerOwner::isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown> handle, void*, AbstractSlotVisitor& visitor, const char** reason) 557 560 { 558 561 UNUSED_PARAM(handle); -
trunk/Source/WebCore/bindings/scripts/test/JS/JSTestCallTracer.h
r270042 r273138 66 66 class JSTestCallTracerOwner final : public JSC::WeakHandleOwner { 67 67 public: 68 bool isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown>, void* context, JSC:: SlotVisitor&, const char**) final;68 bool isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown>, void* context, JSC::AbstractSlotVisitor&, const char**) final; 69 69 void finalize(JSC::Handle<JSC::Unknown>, void* context) final; 70 70 }; -
trunk/Source/WebCore/bindings/scripts/test/JS/JSTestClassWithJSBuiltinConstructor.cpp
r268990 r273138 35 35 #include <JavaScriptCore/JSCInlines.h> 36 36 #include <JavaScriptCore/JSDestructibleObjectHeapCellType.h> 37 #include <JavaScriptCore/SlotVisitorMacros.h> 37 38 #include <JavaScriptCore/SubspaceInlines.h> 38 39 #include <wtf/GetPtr.h> … … 179 180 IGNORE_WARNINGS_BEGIN("unreachable-code") 180 181 IGNORE_WARNINGS_BEGIN("tautological-compare") 181 if (&JSTestClassWithJSBuiltinConstructor::visitOutputConstraints != &JSC::JSCell::visitOutputConstraints) 182 void (*myVisitOutputConstraint)(JSC::JSCell*, JSC::SlotVisitor&) = JSTestClassWithJSBuiltinConstructor::visitOutputConstraints; 183 void (*jsCellVisitOutputConstraint)(JSC::JSCell*, JSC::SlotVisitor&) = JSC::JSCell::visitOutputConstraints; 184 if (myVisitOutputConstraint != jsCellVisitOutputConstraint) 182 185 clientData.outputConstraintSpaces().append(space); 183 186 IGNORE_WARNINGS_END … … 195 198 } 196 199 197 bool JSTestClassWithJSBuiltinConstructorOwner::isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown> handle, void*, SlotVisitor& visitor, const char** reason)200 bool JSTestClassWithJSBuiltinConstructorOwner::isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown> handle, void*, AbstractSlotVisitor& visitor, const char** reason) 198 201 { 199 202 UNUSED_PARAM(handle); -
trunk/Source/WebCore/bindings/scripts/test/JS/JSTestClassWithJSBuiltinConstructor.h
r270042 r273138 66 66 class JSTestClassWithJSBuiltinConstructorOwner final : public JSC::WeakHandleOwner { 67 67 public: 68 bool isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown>, void* context, JSC:: SlotVisitor&, const char**) final;68 bool isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown>, void* context, JSC::AbstractSlotVisitor&, const char**) final; 69 69 void finalize(JSC::Handle<JSC::Unknown>, void* context) final; 70 70 }; -
trunk/Source/WebCore/bindings/scripts/test/JS/JSTestConditionalIncludes.cpp
r270842 r273138 37 37 #include <JavaScriptCore/JSCInlines.h> 38 38 #include <JavaScriptCore/JSDestructibleObjectHeapCellType.h> 39 #include <JavaScriptCore/SlotVisitorMacros.h> 39 40 #include <JavaScriptCore/SubspaceInlines.h> 40 41 #include <wtf/GetPtr.h> … … 805 806 IGNORE_WARNINGS_BEGIN("unreachable-code") 806 807 IGNORE_WARNINGS_BEGIN("tautological-compare") 807 if (&JSTestConditionalIncludes::visitOutputConstraints != &JSC::JSCell::visitOutputConstraints) 808 void (*myVisitOutputConstraint)(JSC::JSCell*, JSC::SlotVisitor&) = JSTestConditionalIncludes::visitOutputConstraints; 809 void (*jsCellVisitOutputConstraint)(JSC::JSCell*, JSC::SlotVisitor&) = JSC::JSCell::visitOutputConstraints; 810 if (myVisitOutputConstraint != jsCellVisitOutputConstraint) 808 811 clientData.outputConstraintSpaces().append(space); 809 812 IGNORE_WARNINGS_END … … 821 824 } 822 825 823 bool JSTestConditionalIncludesOwner::isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown> handle, void*, SlotVisitor& visitor, const char** reason)826 bool JSTestConditionalIncludesOwner::isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown> handle, void*, AbstractSlotVisitor& visitor, const char** reason) 824 827 { 825 828 UNUSED_PARAM(handle); -
trunk/Source/WebCore/bindings/scripts/test/JS/JSTestConditionalIncludes.h
r270042 r273138 79 79 class JSTestConditionalIncludesOwner final : public JSC::WeakHandleOwner { 80 80 public: 81 bool isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown>, void* context, JSC:: SlotVisitor&, const char**) final;81 bool isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown>, void* context, JSC::AbstractSlotVisitor&, const char**) final; 82 82 void finalize(JSC::Handle<JSC::Unknown>, void* context) final; 83 83 }; -
trunk/Source/WebCore/bindings/scripts/test/JS/JSTestConditionallyReadWrite.cpp
r270842 r273138 43 43 #include <JavaScriptCore/JSCInlines.h> 44 44 #include <JavaScriptCore/JSDestructibleObjectHeapCellType.h> 45 #include <JavaScriptCore/SlotVisitorMacros.h> 45 46 #include <JavaScriptCore/SubspaceInlines.h> 46 47 #include <wtf/GetPtr.h> … … 619 620 IGNORE_WARNINGS_BEGIN("unreachable-code") 620 621 IGNORE_WARNINGS_BEGIN("tautological-compare") 621 if (&JSTestConditionallyReadWrite::visitOutputConstraints != &JSC::JSCell::visitOutputConstraints) 622 void (*myVisitOutputConstraint)(JSC::JSCell*, JSC::SlotVisitor&) = JSTestConditionallyReadWrite::visitOutputConstraints; 623 void (*jsCellVisitOutputConstraint)(JSC::JSCell*, JSC::SlotVisitor&) = JSC::JSCell::visitOutputConstraints; 624 if (myVisitOutputConstraint != jsCellVisitOutputConstraint) 622 625 clientData.outputConstraintSpaces().append(space); 623 626 IGNORE_WARNINGS_END … … 635 638 } 636 639 637 bool JSTestConditionallyReadWriteOwner::isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown> handle, void*, SlotVisitor& visitor, const char** reason)640 bool JSTestConditionallyReadWriteOwner::isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown> handle, void*, AbstractSlotVisitor& visitor, const char** reason) 638 641 { 639 642 UNUSED_PARAM(handle); -
trunk/Source/WebCore/bindings/scripts/test/JS/JSTestConditionallyReadWrite.h
r270042 r273138 68 68 class JSTestConditionallyReadWriteOwner final : public JSC::WeakHandleOwner { 69 69 public: 70 bool isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown>, void* context, JSC:: SlotVisitor&, const char**) final;70 bool isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown>, void* context, JSC::AbstractSlotVisitor&, const char**) final; 71 71 void finalize(JSC::Handle<JSC::Unknown>, void* context) final; 72 72 }; -
trunk/Source/WebCore/bindings/scripts/test/JS/JSTestDOMJIT.cpp
r269069 r273138 49 49 #include <JavaScriptCore/JSCInlines.h> 50 50 #include <JavaScriptCore/JSDestructibleObjectHeapCellType.h> 51 #include <JavaScriptCore/SlotVisitorMacros.h> 51 52 #include <JavaScriptCore/SubspaceInlines.h> 52 53 #include <wtf/GetPtr.h> … … 1272 1273 IGNORE_WARNINGS_BEGIN("unreachable-code") 1273 1274 IGNORE_WARNINGS_BEGIN("tautological-compare") 1274 if (&JSTestDOMJIT::visitOutputConstraints != &JSC::JSCell::visitOutputConstraints) 1275 void (*myVisitOutputConstraint)(JSC::JSCell*, JSC::SlotVisitor&) = JSTestDOMJIT::visitOutputConstraints; 1276 void (*jsCellVisitOutputConstraint)(JSC::JSCell*, JSC::SlotVisitor&) = JSC::JSCell::visitOutputConstraints; 1277 if (myVisitOutputConstraint != jsCellVisitOutputConstraint) 1275 1278 clientData.outputConstraintSpaces().append(space); 1276 1279 IGNORE_WARNINGS_END -
trunk/Source/WebCore/bindings/scripts/test/JS/JSTestDefaultToJSON.cpp
r270842 r273138 52 52 #include <JavaScriptCore/JSDestructibleObjectHeapCellType.h> 53 53 #include <JavaScriptCore/ObjectConstructor.h> 54 #include <JavaScriptCore/SlotVisitorMacros.h> 54 55 #include <JavaScriptCore/SubspaceInlines.h> 55 56 #include <wtf/GetPtr.h> … … 791 792 IGNORE_WARNINGS_BEGIN("unreachable-code") 792 793 IGNORE_WARNINGS_BEGIN("tautological-compare") 793 if (&JSTestDefaultToJSON::visitOutputConstraints != &JSC::JSCell::visitOutputConstraints) 794 void (*myVisitOutputConstraint)(JSC::JSCell*, JSC::SlotVisitor&) = JSTestDefaultToJSON::visitOutputConstraints; 795 void (*jsCellVisitOutputConstraint)(JSC::JSCell*, JSC::SlotVisitor&) = JSC::JSCell::visitOutputConstraints; 796 if (myVisitOutputConstraint != jsCellVisitOutputConstraint) 794 797 clientData.outputConstraintSpaces().append(space); 795 798 IGNORE_WARNINGS_END … … 807 810 } 808 811 809 bool JSTestDefaultToJSONOwner::isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown> handle, void*, SlotVisitor& visitor, const char** reason)812 bool JSTestDefaultToJSONOwner::isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown> handle, void*, AbstractSlotVisitor& visitor, const char** reason) 810 813 { 811 814 UNUSED_PARAM(handle); -
trunk/Source/WebCore/bindings/scripts/test/JS/JSTestDefaultToJSON.h
r270042 r273138 66 66 class JSTestDefaultToJSONOwner final : public JSC::WeakHandleOwner { 67 67 public: 68 bool isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown>, void* context, JSC:: SlotVisitor&, const char**) final;68 bool isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown>, void* context, JSC::AbstractSlotVisitor&, const char**) final; 69 69 void finalize(JSC::Handle<JSC::Unknown>, void* context) final; 70 70 }; -
trunk/Source/WebCore/bindings/scripts/test/JS/JSTestDefaultToJSONFilteredByExposed.cpp
r268990 r273138 39 39 #include <JavaScriptCore/JSDestructibleObjectHeapCellType.h> 40 40 #include <JavaScriptCore/ObjectConstructor.h> 41 #include <JavaScriptCore/SlotVisitorMacros.h> 41 42 #include <JavaScriptCore/SubspaceInlines.h> 42 43 #include <wtf/GetPtr.h> … … 277 278 IGNORE_WARNINGS_BEGIN("unreachable-code") 278 279 IGNORE_WARNINGS_BEGIN("tautological-compare") 279 if (&JSTestDefaultToJSONFilteredByExposed::visitOutputConstraints != &JSC::JSCell::visitOutputConstraints) 280 void (*myVisitOutputConstraint)(JSC::JSCell*, JSC::SlotVisitor&) = JSTestDefaultToJSONFilteredByExposed::visitOutputConstraints; 281 void (*jsCellVisitOutputConstraint)(JSC::JSCell*, JSC::SlotVisitor&) = JSC::JSCell::visitOutputConstraints; 282 if (myVisitOutputConstraint != jsCellVisitOutputConstraint) 280 283 clientData.outputConstraintSpaces().append(space); 281 284 IGNORE_WARNINGS_END … … 293 296 } 294 297 295 bool JSTestDefaultToJSONFilteredByExposedOwner::isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown> handle, void*, SlotVisitor& visitor, const char** reason)298 bool JSTestDefaultToJSONFilteredByExposedOwner::isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown> handle, void*, AbstractSlotVisitor& visitor, const char** reason) 296 299 { 297 300 UNUSED_PARAM(handle); -
trunk/Source/WebCore/bindings/scripts/test/JS/JSTestDefaultToJSONFilteredByExposed.h
r270042 r273138 66 66 class JSTestDefaultToJSONFilteredByExposedOwner final : public JSC::WeakHandleOwner { 67 67 public: 68 bool isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown>, void* context, JSC:: SlotVisitor&, const char**) final;68 bool isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown>, void* context, JSC::AbstractSlotVisitor&, const char**) final; 69 69 void finalize(JSC::Handle<JSC::Unknown>, void* context) final; 70 70 }; -
trunk/Source/WebCore/bindings/scripts/test/JS/JSTestDefaultToJSONIndirectInheritance.cpp
r268990 r273138 33 33 #include <JavaScriptCore/JSCInlines.h> 34 34 #include <JavaScriptCore/JSDestructibleObjectHeapCellType.h> 35 #include <JavaScriptCore/SlotVisitorMacros.h> 35 36 #include <JavaScriptCore/SubspaceInlines.h> 36 37 #include <wtf/GetPtr.h> … … 165 166 IGNORE_WARNINGS_BEGIN("unreachable-code") 166 167 IGNORE_WARNINGS_BEGIN("tautological-compare") 167 if (&JSTestDefaultToJSONIndirectInheritance::visitOutputConstraints != &JSC::JSCell::visitOutputConstraints) 168 void (*myVisitOutputConstraint)(JSC::JSCell*, JSC::SlotVisitor&) = JSTestDefaultToJSONIndirectInheritance::visitOutputConstraints; 169 void (*jsCellVisitOutputConstraint)(JSC::JSCell*, JSC::SlotVisitor&) = JSC::JSCell::visitOutputConstraints; 170 if (myVisitOutputConstraint != jsCellVisitOutputConstraint) 168 171 clientData.outputConstraintSpaces().append(space); 169 172 IGNORE_WARNINGS_END -
trunk/Source/WebCore/bindings/scripts/test/JS/JSTestDefaultToJSONInherit.cpp
r270842 r273138 48 48 #include <JavaScriptCore/JSDestructibleObjectHeapCellType.h> 49 49 #include <JavaScriptCore/ObjectConstructor.h> 50 #include <JavaScriptCore/SlotVisitorMacros.h> 50 51 #include <JavaScriptCore/SubspaceInlines.h> 51 52 #include <wtf/GetPtr.h> … … 273 274 IGNORE_WARNINGS_BEGIN("unreachable-code") 274 275 IGNORE_WARNINGS_BEGIN("tautological-compare") 275 if (&JSTestDefaultToJSONInherit::visitOutputConstraints != &JSC::JSCell::visitOutputConstraints) 276 void (*myVisitOutputConstraint)(JSC::JSCell*, JSC::SlotVisitor&) = JSTestDefaultToJSONInherit::visitOutputConstraints; 277 void (*jsCellVisitOutputConstraint)(JSC::JSCell*, JSC::SlotVisitor&) = JSC::JSCell::visitOutputConstraints; 278 if (myVisitOutputConstraint != jsCellVisitOutputConstraint) 276 279 clientData.outputConstraintSpaces().append(space); 277 280 IGNORE_WARNINGS_END -
trunk/Source/WebCore/bindings/scripts/test/JS/JSTestDefaultToJSONInheritFinal.cpp
r270842 r273138 48 48 #include <JavaScriptCore/JSDestructibleObjectHeapCellType.h> 49 49 #include <JavaScriptCore/ObjectConstructor.h> 50 #include <JavaScriptCore/SlotVisitorMacros.h> 50 51 #include <JavaScriptCore/SubspaceInlines.h> 51 52 #include <wtf/GetPtr.h> … … 309 310 IGNORE_WARNINGS_BEGIN("unreachable-code") 310 311 IGNORE_WARNINGS_BEGIN("tautological-compare") 311 if (&JSTestDefaultToJSONInheritFinal::visitOutputConstraints != &JSC::JSCell::visitOutputConstraints) 312 void (*myVisitOutputConstraint)(JSC::JSCell*, JSC::SlotVisitor&) = JSTestDefaultToJSONInheritFinal::visitOutputConstraints; 313 void (*jsCellVisitOutputConstraint)(JSC::JSCell*, JSC::SlotVisitor&) = JSC::JSCell::visitOutputConstraints; 314 if (myVisitOutputConstraint != jsCellVisitOutputConstraint) 312 315 clientData.outputConstraintSpaces().append(space); 313 316 IGNORE_WARNINGS_END -
trunk/Source/WebCore/bindings/scripts/test/JS/JSTestDomainSecurity.cpp
r268990 r273138 42 42 #include <JavaScriptCore/JSCInlines.h> 43 43 #include <JavaScriptCore/JSDestructibleObjectHeapCellType.h> 44 #include <JavaScriptCore/SlotVisitorMacros.h> 44 45 #include <JavaScriptCore/SubspaceInlines.h> 45 46 #include <wtf/GetPtr.h> … … 339 340 IGNORE_WARNINGS_BEGIN("unreachable-code") 340 341 IGNORE_WARNINGS_BEGIN("tautological-compare") 341 if (&JSTestDomainSecurity::visitOutputConstraints != &JSC::JSCell::visitOutputConstraints) 342 void (*myVisitOutputConstraint)(JSC::JSCell*, JSC::SlotVisitor&) = JSTestDomainSecurity::visitOutputConstraints; 343 void (*jsCellVisitOutputConstraint)(JSC::JSCell*, JSC::SlotVisitor&) = JSC::JSCell::visitOutputConstraints; 344 if (myVisitOutputConstraint != jsCellVisitOutputConstraint) 342 345 clientData.outputConstraintSpaces().append(space); 343 346 IGNORE_WARNINGS_END … … 355 358 } 356 359 357 bool JSTestDomainSecurityOwner::isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown> handle, void*, SlotVisitor& visitor, const char** reason)360 bool JSTestDomainSecurityOwner::isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown> handle, void*, AbstractSlotVisitor& visitor, const char** reason) 358 361 { 359 362 UNUSED_PARAM(handle); -
trunk/Source/WebCore/bindings/scripts/test/JS/JSTestDomainSecurity.h
r270042 r273138 69 69 class JSTestDomainSecurityOwner final : public JSC::WeakHandleOwner { 70 70 public: 71 bool isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown>, void* context, JSC:: SlotVisitor&, const char**) final;71 bool isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown>, void* context, JSC::AbstractSlotVisitor&, const char**) final; 72 72 void finalize(JSC::Handle<JSC::Unknown>, void* context) final; 73 73 }; -
trunk/Source/WebCore/bindings/scripts/test/JS/JSTestEnabledBySetting.cpp
r270842 r273138 39 39 #include <JavaScriptCore/JSCInlines.h> 40 40 #include <JavaScriptCore/JSDestructibleObjectHeapCellType.h> 41 #include <JavaScriptCore/SlotVisitorMacros.h> 41 42 #include <JavaScriptCore/SubspaceInlines.h> 42 43 #include <wtf/GetPtr.h> … … 508 509 IGNORE_WARNINGS_BEGIN("unreachable-code") 509 510 IGNORE_WARNINGS_BEGIN("tautological-compare") 510 if (&JSTestEnabledBySetting::visitOutputConstraints != &JSC::JSCell::visitOutputConstraints) 511 void (*myVisitOutputConstraint)(JSC::JSCell*, JSC::SlotVisitor&) = JSTestEnabledBySetting::visitOutputConstraints; 512 void (*jsCellVisitOutputConstraint)(JSC::JSCell*, JSC::SlotVisitor&) = JSC::JSCell::visitOutputConstraints; 513 if (myVisitOutputConstraint != jsCellVisitOutputConstraint) 511 514 clientData.outputConstraintSpaces().append(space); 512 515 IGNORE_WARNINGS_END … … 524 527 } 525 528 526 bool JSTestEnabledBySettingOwner::isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown> handle, void*, SlotVisitor& visitor, const char** reason)529 bool JSTestEnabledBySettingOwner::isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown> handle, void*, AbstractSlotVisitor& visitor, const char** reason) 527 530 { 528 531 UNUSED_PARAM(handle); -
trunk/Source/WebCore/bindings/scripts/test/JS/JSTestEnabledBySetting.h
r270042 r273138 68 68 class JSTestEnabledBySettingOwner final : public JSC::WeakHandleOwner { 69 69 public: 70 bool isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown>, void* context, JSC:: SlotVisitor&, const char**) final;70 bool isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown>, void* context, JSC::AbstractSlotVisitor&, const char**) final; 71 71 void finalize(JSC::Handle<JSC::Unknown>, void* context) final; 72 72 }; -
trunk/Source/WebCore/bindings/scripts/test/JS/JSTestEnabledForContext.cpp
r270842 r273138 36 36 #include <JavaScriptCore/JSCInlines.h> 37 37 #include <JavaScriptCore/JSDestructibleObjectHeapCellType.h> 38 #include <JavaScriptCore/SlotVisitorMacros.h> 38 39 #include <JavaScriptCore/SubspaceInlines.h> 39 40 #include <wtf/GetPtr.h> … … 207 208 IGNORE_WARNINGS_BEGIN("unreachable-code") 208 209 IGNORE_WARNINGS_BEGIN("tautological-compare") 209 if (&JSTestEnabledForContext::visitOutputConstraints != &JSC::JSCell::visitOutputConstraints) 210 void (*myVisitOutputConstraint)(JSC::JSCell*, JSC::SlotVisitor&) = JSTestEnabledForContext::visitOutputConstraints; 211 void (*jsCellVisitOutputConstraint)(JSC::JSCell*, JSC::SlotVisitor&) = JSC::JSCell::visitOutputConstraints; 212 if (myVisitOutputConstraint != jsCellVisitOutputConstraint) 210 213 clientData.outputConstraintSpaces().append(space); 211 214 IGNORE_WARNINGS_END … … 223 226 } 224 227 225 bool JSTestEnabledForContextOwner::isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown> handle, void*, SlotVisitor& visitor, const char** reason)228 bool JSTestEnabledForContextOwner::isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown> handle, void*, AbstractSlotVisitor& visitor, const char** reason) 226 229 { 227 230 UNUSED_PARAM(handle); -
trunk/Source/WebCore/bindings/scripts/test/JS/JSTestEnabledForContext.h
r270042 r273138 68 68 class JSTestEnabledForContextOwner final : public JSC::WeakHandleOwner { 69 69 public: 70 bool isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown>, void* context, JSC:: SlotVisitor&, const char**) final;70 bool isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown>, void* context, JSC::AbstractSlotVisitor&, const char**) final; 71 71 void finalize(JSC::Handle<JSC::Unknown>, void* context) final; 72 72 }; -
trunk/Source/WebCore/bindings/scripts/test/JS/JSTestEventConstructor.cpp
r268990 r273138 37 37 #include <JavaScriptCore/JSCInlines.h> 38 38 #include <JavaScriptCore/JSDestructibleObjectHeapCellType.h> 39 #include <JavaScriptCore/SlotVisitorMacros.h> 39 40 #include <JavaScriptCore/SubspaceInlines.h> 40 41 #include <wtf/GetPtr.h> … … 329 330 IGNORE_WARNINGS_BEGIN("unreachable-code") 330 331 IGNORE_WARNINGS_BEGIN("tautological-compare") 331 if (&JSTestEventConstructor::visitOutputConstraints != &JSC::JSCell::visitOutputConstraints) 332 void (*myVisitOutputConstraint)(JSC::JSCell*, JSC::SlotVisitor&) = JSTestEventConstructor::visitOutputConstraints; 333 void (*jsCellVisitOutputConstraint)(JSC::JSCell*, JSC::SlotVisitor&) = JSC::JSCell::visitOutputConstraints; 334 if (myVisitOutputConstraint != jsCellVisitOutputConstraint) 332 335 clientData.outputConstraintSpaces().append(space); 333 336 IGNORE_WARNINGS_END -
trunk/Source/WebCore/bindings/scripts/test/JS/JSTestEventTarget.cpp
r271269 r273138 40 40 #include <JavaScriptCore/JSDestructibleObjectHeapCellType.h> 41 41 #include <JavaScriptCore/PropertyNameArray.h> 42 #include <JavaScriptCore/SlotVisitorMacros.h> 42 43 #include <JavaScriptCore/SubspaceInlines.h> 43 44 #include <wtf/GetPtr.h> … … 270 271 IGNORE_WARNINGS_BEGIN("unreachable-code") 271 272 IGNORE_WARNINGS_BEGIN("tautological-compare") 272 if (&JSTestEventTarget::visitOutputConstraints != &JSC::JSCell::visitOutputConstraints) 273 void (*myVisitOutputConstraint)(JSC::JSCell*, JSC::SlotVisitor&) = JSTestEventTarget::visitOutputConstraints; 274 void (*jsCellVisitOutputConstraint)(JSC::JSCell*, JSC::SlotVisitor&) = JSC::JSCell::visitOutputConstraints; 275 if (myVisitOutputConstraint != jsCellVisitOutputConstraint) 273 276 clientData.outputConstraintSpaces().append(space); 274 277 IGNORE_WARNINGS_END -
trunk/Source/WebCore/bindings/scripts/test/JS/JSTestException.cpp
r268990 r273138 36 36 #include <JavaScriptCore/JSCInlines.h> 37 37 #include <JavaScriptCore/JSDestructibleObjectHeapCellType.h> 38 #include <JavaScriptCore/SlotVisitorMacros.h> 38 39 #include <JavaScriptCore/SubspaceInlines.h> 39 40 #include <wtf/GetPtr.h> … … 195 196 IGNORE_WARNINGS_BEGIN("unreachable-code") 196 197 IGNORE_WARNINGS_BEGIN("tautological-compare") 197 if (&JSTestException::visitOutputConstraints != &JSC::JSCell::visitOutputConstraints) 198 void (*myVisitOutputConstraint)(JSC::JSCell*, JSC::SlotVisitor&) = JSTestException::visitOutputConstraints; 199 void (*jsCellVisitOutputConstraint)(JSC::JSCell*, JSC::SlotVisitor&) = JSC::JSCell::visitOutputConstraints; 200 if (myVisitOutputConstraint != jsCellVisitOutputConstraint) 198 201 clientData.outputConstraintSpaces().append(space); 199 202 IGNORE_WARNINGS_END … … 211 214 } 212 215 213 bool JSTestExceptionOwner::isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown> handle, void*, SlotVisitor& visitor, const char** reason)216 bool JSTestExceptionOwner::isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown> handle, void*, AbstractSlotVisitor& visitor, const char** reason) 214 217 { 215 218 UNUSED_PARAM(handle); -
trunk/Source/WebCore/bindings/scripts/test/JS/JSTestException.h
r270042 r273138 67 67 class JSTestExceptionOwner final : public JSC::WeakHandleOwner { 68 68 public: 69 bool isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown>, void* context, JSC:: SlotVisitor&, const char**) final;69 bool isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown>, void* context, JSC::AbstractSlotVisitor&, const char**) final; 70 70 void finalize(JSC::Handle<JSC::Unknown>, void* context) final; 71 71 }; -
trunk/Source/WebCore/bindings/scripts/test/JS/JSTestGenerateIsReachable.cpp
r268990 r273138 36 36 #include <JavaScriptCore/JSCInlines.h> 37 37 #include <JavaScriptCore/JSDestructibleObjectHeapCellType.h> 38 #include <JavaScriptCore/SlotVisitorMacros.h> 38 39 #include <JavaScriptCore/SubspaceInlines.h> 39 40 #include <wtf/GetPtr.h> … … 205 206 IGNORE_WARNINGS_BEGIN("unreachable-code") 206 207 IGNORE_WARNINGS_BEGIN("tautological-compare") 207 if (&JSTestGenerateIsReachable::visitOutputConstraints != &JSC::JSCell::visitOutputConstraints) 208 void (*myVisitOutputConstraint)(JSC::JSCell*, JSC::SlotVisitor&) = JSTestGenerateIsReachable::visitOutputConstraints; 209 void (*jsCellVisitOutputConstraint)(JSC::JSCell*, JSC::SlotVisitor&) = JSC::JSCell::visitOutputConstraints; 210 if (myVisitOutputConstraint != jsCellVisitOutputConstraint) 208 211 clientData.outputConstraintSpaces().append(space); 209 212 IGNORE_WARNINGS_END … … 221 224 } 222 225 223 bool JSTestGenerateIsReachableOwner::isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown> handle, void*, SlotVisitor& visitor, const char** reason)226 bool JSTestGenerateIsReachableOwner::isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown> handle, void*, AbstractSlotVisitor& visitor, const char** reason) 224 227 { 225 228 auto* jsTestGenerateIsReachable = jsCast<JSTestGenerateIsReachable*>(handle.slot()->asCell()); -
trunk/Source/WebCore/bindings/scripts/test/JS/JSTestGenerateIsReachable.h
r270042 r273138 66 66 class JSTestGenerateIsReachableOwner final : public JSC::WeakHandleOwner { 67 67 public: 68 bool isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown>, void* context, JSC:: SlotVisitor&, const char**) final;68 bool isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown>, void* context, JSC::AbstractSlotVisitor&, const char**) final; 69 69 void finalize(JSC::Handle<JSC::Unknown>, void* context) final; 70 70 }; -
trunk/Source/WebCore/bindings/scripts/test/JS/JSTestGlobalObject.cpp
r268990 r273138 100 100 #include <JavaScriptCore/JSCInlines.h> 101 101 #include <JavaScriptCore/JSDestructibleObjectHeapCellType.h> 102 #include <JavaScriptCore/SlotVisitorMacros.h> 102 103 #include <JavaScriptCore/SubspaceInlines.h> 103 104 #include <wtf/GetPtr.h> … … 2599 2600 IGNORE_WARNINGS_BEGIN("unreachable-code") 2600 2601 IGNORE_WARNINGS_BEGIN("tautological-compare") 2601 if (&JSTestGlobalObject::visitOutputConstraints != &JSC::JSCell::visitOutputConstraints) 2602 void (*myVisitOutputConstraint)(JSC::JSCell*, JSC::SlotVisitor&) = JSTestGlobalObject::visitOutputConstraints; 2603 void (*jsCellVisitOutputConstraint)(JSC::JSCell*, JSC::SlotVisitor&) = JSC::JSCell::visitOutputConstraints; 2604 if (myVisitOutputConstraint != jsCellVisitOutputConstraint) 2602 2605 clientData.outputConstraintSpaces().append(space); 2603 2606 IGNORE_WARNINGS_END … … 2615 2618 } 2616 2619 2617 bool JSTestGlobalObjectOwner::isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown> handle, void*, SlotVisitor& visitor, const char** reason)2620 bool JSTestGlobalObjectOwner::isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown> handle, void*, AbstractSlotVisitor& visitor, const char** reason) 2618 2621 { 2619 2622 UNUSED_PARAM(handle); -
trunk/Source/WebCore/bindings/scripts/test/JS/JSTestGlobalObject.h
r270042 r273138 68 68 class JSTestGlobalObjectOwner final : public JSC::WeakHandleOwner { 69 69 public: 70 bool isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown>, void* context, JSC:: SlotVisitor&, const char**) final;70 bool isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown>, void* context, JSC::AbstractSlotVisitor&, const char**) final; 71 71 void finalize(JSC::Handle<JSC::Unknown>, void* context) final; 72 72 }; -
trunk/Source/WebCore/bindings/scripts/test/JS/JSTestIndexedSetterNoIdentifier.cpp
r271269 r273138 36 36 #include <JavaScriptCore/JSDestructibleObjectHeapCellType.h> 37 37 #include <JavaScriptCore/PropertyNameArray.h> 38 #include <JavaScriptCore/SlotVisitorMacros.h> 38 39 #include <JavaScriptCore/SubspaceInlines.h> 39 40 #include <wtf/GetPtr.h> … … 265 266 IGNORE_WARNINGS_BEGIN("unreachable-code") 266 267 IGNORE_WARNINGS_BEGIN("tautological-compare") 267 if (&JSTestIndexedSetterNoIdentifier::visitOutputConstraints != &JSC::JSCell::visitOutputConstraints) 268 void (*myVisitOutputConstraint)(JSC::JSCell*, JSC::SlotVisitor&) = JSTestIndexedSetterNoIdentifier::visitOutputConstraints; 269 void (*jsCellVisitOutputConstraint)(JSC::JSCell*, JSC::SlotVisitor&) = JSC::JSCell::visitOutputConstraints; 270 if (myVisitOutputConstraint != jsCellVisitOutputConstraint) 268 271 clientData.outputConstraintSpaces().append(space); 269 272 IGNORE_WARNINGS_END … … 281 284 } 282 285 283 bool JSTestIndexedSetterNoIdentifierOwner::isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown> handle, void*, SlotVisitor& visitor, const char** reason)286 bool JSTestIndexedSetterNoIdentifierOwner::isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown> handle, void*, AbstractSlotVisitor& visitor, const char** reason) 284 287 { 285 288 UNUSED_PARAM(handle); -
trunk/Source/WebCore/bindings/scripts/test/JS/JSTestIndexedSetterNoIdentifier.h
r271269 r273138 74 74 class JSTestIndexedSetterNoIdentifierOwner final : public JSC::WeakHandleOwner { 75 75 public: 76 bool isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown>, void* context, JSC:: SlotVisitor&, const char**) final;76 bool isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown>, void* context, JSC::AbstractSlotVisitor&, const char**) final; 77 77 void finalize(JSC::Handle<JSC::Unknown>, void* context) final; 78 78 }; -
trunk/Source/WebCore/bindings/scripts/test/JS/JSTestIndexedSetterThrowingException.cpp
r271269 r273138 36 36 #include <JavaScriptCore/JSDestructibleObjectHeapCellType.h> 37 37 #include <JavaScriptCore/PropertyNameArray.h> 38 #include <JavaScriptCore/SlotVisitorMacros.h> 38 39 #include <JavaScriptCore/SubspaceInlines.h> 39 40 #include <wtf/GetPtr.h> … … 265 266 IGNORE_WARNINGS_BEGIN("unreachable-code") 266 267 IGNORE_WARNINGS_BEGIN("tautological-compare") 267 if (&JSTestIndexedSetterThrowingException::visitOutputConstraints != &JSC::JSCell::visitOutputConstraints) 268 void (*myVisitOutputConstraint)(JSC::JSCell*, JSC::SlotVisitor&) = JSTestIndexedSetterThrowingException::visitOutputConstraints; 269 void (*jsCellVisitOutputConstraint)(JSC::JSCell*, JSC::SlotVisitor&) = JSC::JSCell::visitOutputConstraints; 270 if (myVisitOutputConstraint != jsCellVisitOutputConstraint) 268 271 clientData.outputConstraintSpaces().append(space); 269 272 IGNORE_WARNINGS_END … … 281 284 } 282 285 283 bool JSTestIndexedSetterThrowingExceptionOwner::isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown> handle, void*, SlotVisitor& visitor, const char** reason)286 bool JSTestIndexedSetterThrowingExceptionOwner::isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown> handle, void*, AbstractSlotVisitor& visitor, const char** reason) 284 287 { 285 288 UNUSED_PARAM(handle); -
trunk/Source/WebCore/bindings/scripts/test/JS/JSTestIndexedSetterThrowingException.h
r271269 r273138 74 74 class JSTestIndexedSetterThrowingExceptionOwner final : public JSC::WeakHandleOwner { 75 75 public: 76 bool isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown>, void* context, JSC:: SlotVisitor&, const char**) final;76 bool isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown>, void* context, JSC::AbstractSlotVisitor&, const char**) final; 77 77 void finalize(JSC::Handle<JSC::Unknown>, void* context) final; 78 78 }; -
trunk/Source/WebCore/bindings/scripts/test/JS/JSTestIndexedSetterWithIdentifier.cpp
r271269 r273138 38 38 #include <JavaScriptCore/JSDestructibleObjectHeapCellType.h> 39 39 #include <JavaScriptCore/PropertyNameArray.h> 40 #include <JavaScriptCore/SlotVisitorMacros.h> 40 41 #include <JavaScriptCore/SubspaceInlines.h> 41 42 #include <wtf/GetPtr.h> … … 302 303 IGNORE_WARNINGS_BEGIN("unreachable-code") 303 304 IGNORE_WARNINGS_BEGIN("tautological-compare") 304 if (&JSTestIndexedSetterWithIdentifier::visitOutputConstraints != &JSC::JSCell::visitOutputConstraints) 305 void (*myVisitOutputConstraint)(JSC::JSCell*, JSC::SlotVisitor&) = JSTestIndexedSetterWithIdentifier::visitOutputConstraints; 306 void (*jsCellVisitOutputConstraint)(JSC::JSCell*, JSC::SlotVisitor&) = JSC::JSCell::visitOutputConstraints; 307 if (myVisitOutputConstraint != jsCellVisitOutputConstraint) 305 308 clientData.outputConstraintSpaces().append(space); 306 309 IGNORE_WARNINGS_END … … 318 321 } 319 322 320 bool JSTestIndexedSetterWithIdentifierOwner::isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown> handle, void*, SlotVisitor& visitor, const char** reason)323 bool JSTestIndexedSetterWithIdentifierOwner::isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown> handle, void*, AbstractSlotVisitor& visitor, const char** reason) 321 324 { 322 325 UNUSED_PARAM(handle); -
trunk/Source/WebCore/bindings/scripts/test/JS/JSTestIndexedSetterWithIdentifier.h
r271269 r273138 74 74 class JSTestIndexedSetterWithIdentifierOwner final : public JSC::WeakHandleOwner { 75 75 public: 76 bool isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown>, void* context, JSC:: SlotVisitor&, const char**) final;76 bool isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown>, void* context, JSC::AbstractSlotVisitor&, const char**) final; 77 77 void finalize(JSC::Handle<JSC::Unknown>, void* context) final; 78 78 }; -
trunk/Source/WebCore/bindings/scripts/test/JS/JSTestInterface.cpp
r270842 r273138 47 47 #include <JavaScriptCore/JSCInlines.h> 48 48 #include <JavaScriptCore/JSDestructibleObjectHeapCellType.h> 49 #include <JavaScriptCore/SlotVisitorMacros.h> 49 50 #include <JavaScriptCore/SubspaceInlines.h> 50 51 #include <wtf/GetPtr.h> … … 1123 1124 IGNORE_WARNINGS_BEGIN("unreachable-code") 1124 1125 IGNORE_WARNINGS_BEGIN("tautological-compare") 1125 if (&TestInterfaceIterator::visitOutputConstraints != &JSC::JSCell::visitOutputConstraints) 1126 void (*myVisitOutputConstraint)(JSC::JSCell*, JSC::SlotVisitor&) = TestInterfaceIterator::visitOutputConstraints; 1127 void (*jsCellVisitOutputConstraint)(JSC::JSCell*, JSC::SlotVisitor&) = JSC::JSCell::visitOutputConstraints; 1128 if (myVisitOutputConstraint != jsCellVisitOutputConstraint) 1126 1129 clientData.outputConstraintSpaces().append(space); 1127 1130 IGNORE_WARNINGS_END … … 1213 1216 IGNORE_WARNINGS_BEGIN("unreachable-code") 1214 1217 IGNORE_WARNINGS_BEGIN("tautological-compare") 1215 if (&JSTestInterface::visitOutputConstraints != &JSC::JSCell::visitOutputConstraints) 1218 void (*myVisitOutputConstraint)(JSC::JSCell*, JSC::SlotVisitor&) = JSTestInterface::visitOutputConstraints; 1219 void (*jsCellVisitOutputConstraint)(JSC::JSCell*, JSC::SlotVisitor&) = JSC::JSCell::visitOutputConstraints; 1220 if (myVisitOutputConstraint != jsCellVisitOutputConstraint) 1216 1221 clientData.outputConstraintSpaces().append(space); 1217 1222 IGNORE_WARNINGS_END … … 1229 1234 } 1230 1235 1231 bool JSTestInterfaceOwner::isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown> handle, void*, SlotVisitor& visitor, const char** reason)1236 bool JSTestInterfaceOwner::isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown> handle, void*, AbstractSlotVisitor& visitor, const char** reason) 1232 1237 { 1233 1238 auto* jsTestInterface = jsCast<JSTestInterface*>(handle.slot()->asCell()); -
trunk/Source/WebCore/bindings/scripts/test/JS/JSTestInterface.h
r270042 r273138 92 92 class WEBCORE_EXPORT JSTestInterfaceOwner final : public JSC::WeakHandleOwner { 93 93 public: 94 bool isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown>, void* context, JSC:: SlotVisitor&, const char**) final;94 bool isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown>, void* context, JSC::AbstractSlotVisitor&, const char**) final; 95 95 void finalize(JSC::Handle<JSC::Unknown>, void* context) final; 96 96 }; -
trunk/Source/WebCore/bindings/scripts/test/JS/JSTestInterfaceLeadingUnderscore.cpp
r268990 r273138 36 36 #include <JavaScriptCore/JSCInlines.h> 37 37 #include <JavaScriptCore/JSDestructibleObjectHeapCellType.h> 38 #include <JavaScriptCore/SlotVisitorMacros.h> 38 39 #include <JavaScriptCore/SubspaceInlines.h> 39 40 #include <wtf/GetPtr.h> … … 195 196 IGNORE_WARNINGS_BEGIN("unreachable-code") 196 197 IGNORE_WARNINGS_BEGIN("tautological-compare") 197 if (&JSTestInterfaceLeadingUnderscore::visitOutputConstraints != &JSC::JSCell::visitOutputConstraints) 198 void (*myVisitOutputConstraint)(JSC::JSCell*, JSC::SlotVisitor&) = JSTestInterfaceLeadingUnderscore::visitOutputConstraints; 199 void (*jsCellVisitOutputConstraint)(JSC::JSCell*, JSC::SlotVisitor&) = JSC::JSCell::visitOutputConstraints; 200 if (myVisitOutputConstraint != jsCellVisitOutputConstraint) 198 201 clientData.outputConstraintSpaces().append(space); 199 202 IGNORE_WARNINGS_END … … 211 214 } 212 215 213 bool JSTestInterfaceLeadingUnderscoreOwner::isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown> handle, void*, SlotVisitor& visitor, const char** reason)216 bool JSTestInterfaceLeadingUnderscoreOwner::isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown> handle, void*, AbstractSlotVisitor& visitor, const char** reason) 214 217 { 215 218 UNUSED_PARAM(handle); -
trunk/Source/WebCore/bindings/scripts/test/JS/JSTestInterfaceLeadingUnderscore.h
r270042 r273138 66 66 class JSTestInterfaceLeadingUnderscoreOwner final : public JSC::WeakHandleOwner { 67 67 public: 68 bool isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown>, void* context, JSC:: SlotVisitor&, const char**) final;68 bool isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown>, void* context, JSC::AbstractSlotVisitor&, const char**) final; 69 69 void finalize(JSC::Handle<JSC::Unknown>, void* context) final; 70 70 }; -
trunk/Source/WebCore/bindings/scripts/test/JS/JSTestIterable.cpp
r268990 r273138 39 39 #include <JavaScriptCore/JSCInlines.h> 40 40 #include <JavaScriptCore/JSDestructibleObjectHeapCellType.h> 41 #include <JavaScriptCore/SlotVisitorMacros.h> 41 42 #include <JavaScriptCore/SubspaceInlines.h> 42 43 #include <wtf/GetPtr.h> … … 209 210 IGNORE_WARNINGS_BEGIN("unreachable-code") 210 211 IGNORE_WARNINGS_BEGIN("tautological-compare") 211 if (&TestIterableIterator::visitOutputConstraints != &JSC::JSCell::visitOutputConstraints) 212 void (*myVisitOutputConstraint)(JSC::JSCell*, JSC::SlotVisitor&) = TestIterableIterator::visitOutputConstraints; 213 void (*jsCellVisitOutputConstraint)(JSC::JSCell*, JSC::SlotVisitor&) = JSC::JSCell::visitOutputConstraints; 214 if (myVisitOutputConstraint != jsCellVisitOutputConstraint) 212 215 clientData.outputConstraintSpaces().append(space); 213 216 IGNORE_WARNINGS_END … … 299 302 IGNORE_WARNINGS_BEGIN("unreachable-code") 300 303 IGNORE_WARNINGS_BEGIN("tautological-compare") 301 if (&JSTestIterable::visitOutputConstraints != &JSC::JSCell::visitOutputConstraints) 304 void (*myVisitOutputConstraint)(JSC::JSCell*, JSC::SlotVisitor&) = JSTestIterable::visitOutputConstraints; 305 void (*jsCellVisitOutputConstraint)(JSC::JSCell*, JSC::SlotVisitor&) = JSC::JSCell::visitOutputConstraints; 306 if (myVisitOutputConstraint != jsCellVisitOutputConstraint) 302 307 clientData.outputConstraintSpaces().append(space); 303 308 IGNORE_WARNINGS_END … … 315 320 } 316 321 317 bool JSTestIterableOwner::isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown> handle, void*, SlotVisitor& visitor, const char** reason)322 bool JSTestIterableOwner::isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown> handle, void*, AbstractSlotVisitor& visitor, const char** reason) 318 323 { 319 324 UNUSED_PARAM(handle); -
trunk/Source/WebCore/bindings/scripts/test/JS/JSTestIterable.h
r270042 r273138 66 66 class JSTestIterableOwner final : public JSC::WeakHandleOwner { 67 67 public: 68 bool isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown>, void* context, JSC:: SlotVisitor&, const char**) final;68 bool isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown>, void* context, JSC::AbstractSlotVisitor&, const char**) final; 69 69 void finalize(JSC::Handle<JSC::Unknown>, void* context) final; 70 70 }; -
trunk/Source/WebCore/bindings/scripts/test/JS/JSTestJSBuiltinConstructor.cpp
r268990 r273138 34 34 #include <JavaScriptCore/JSCInlines.h> 35 35 #include <JavaScriptCore/JSDestructibleObjectHeapCellType.h> 36 #include <JavaScriptCore/SlotVisitorMacros.h> 36 37 #include <JavaScriptCore/SubspaceInlines.h> 37 38 #include <wtf/GetPtr.h> … … 243 244 IGNORE_WARNINGS_BEGIN("unreachable-code") 244 245 IGNORE_WARNINGS_BEGIN("tautological-compare") 245 if (&JSTestJSBuiltinConstructor::visitOutputConstraints != &JSC::JSCell::visitOutputConstraints) 246 void (*myVisitOutputConstraint)(JSC::JSCell*, JSC::SlotVisitor&) = JSTestJSBuiltinConstructor::visitOutputConstraints; 247 void (*jsCellVisitOutputConstraint)(JSC::JSCell*, JSC::SlotVisitor&) = JSC::JSCell::visitOutputConstraints; 248 if (myVisitOutputConstraint != jsCellVisitOutputConstraint) 246 249 clientData.outputConstraintSpaces().append(space); 247 250 IGNORE_WARNINGS_END -
trunk/Source/WebCore/bindings/scripts/test/JS/JSTestLegacyFactoryFunction.cpp
r268990 r273138 38 38 #include <JavaScriptCore/JSCInlines.h> 39 39 #include <JavaScriptCore/JSDestructibleObjectHeapCellType.h> 40 #include <JavaScriptCore/SlotVisitorMacros.h> 40 41 #include <JavaScriptCore/SubspaceInlines.h> 41 42 #include <wtf/GetPtr.h> … … 231 232 IGNORE_WARNINGS_BEGIN("unreachable-code") 232 233 IGNORE_WARNINGS_BEGIN("tautological-compare") 233 if (&JSTestLegacyFactoryFunction::visitOutputConstraints != &JSC::JSCell::visitOutputConstraints) 234 void (*myVisitOutputConstraint)(JSC::JSCell*, JSC::SlotVisitor&) = JSTestLegacyFactoryFunction::visitOutputConstraints; 235 void (*jsCellVisitOutputConstraint)(JSC::JSCell*, JSC::SlotVisitor&) = JSC::JSCell::visitOutputConstraints; 236 if (myVisitOutputConstraint != jsCellVisitOutputConstraint) 234 237 clientData.outputConstraintSpaces().append(space); 235 238 IGNORE_WARNINGS_END … … 247 250 } 248 251 249 bool JSTestLegacyFactoryFunctionOwner::isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown> handle, void*, SlotVisitor& visitor, const char** reason)252 bool JSTestLegacyFactoryFunctionOwner::isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown> handle, void*, AbstractSlotVisitor& visitor, const char** reason) 250 253 { 251 254 auto* jsTestLegacyFactoryFunction = jsCast<JSTestLegacyFactoryFunction*>(handle.slot()->asCell()); -
trunk/Source/WebCore/bindings/scripts/test/JS/JSTestLegacyFactoryFunction.h
r270042 r273138 67 67 class JSTestLegacyFactoryFunctionOwner final : public JSC::WeakHandleOwner { 68 68 public: 69 bool isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown>, void* context, JSC:: SlotVisitor&, const char**) final;69 bool isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown>, void* context, JSC::AbstractSlotVisitor&, const char**) final; 70 70 void finalize(JSC::Handle<JSC::Unknown>, void* context) final; 71 71 }; -
trunk/Source/WebCore/bindings/scripts/test/JS/JSTestLegacyNoInterfaceObject.cpp
r268990 r273138 42 42 #include <JavaScriptCore/JSCInlines.h> 43 43 #include <JavaScriptCore/JSDestructibleObjectHeapCellType.h> 44 #include <JavaScriptCore/SlotVisitorMacros.h> 44 45 #include <JavaScriptCore/SubspaceInlines.h> 45 46 #include <wtf/GetPtr.h> … … 382 383 IGNORE_WARNINGS_BEGIN("unreachable-code") 383 384 IGNORE_WARNINGS_BEGIN("tautological-compare") 384 if (&JSTestLegacyNoInterfaceObject::visitOutputConstraints != &JSC::JSCell::visitOutputConstraints) 385 void (*myVisitOutputConstraint)(JSC::JSCell*, JSC::SlotVisitor&) = JSTestLegacyNoInterfaceObject::visitOutputConstraints; 386 void (*jsCellVisitOutputConstraint)(JSC::JSCell*, JSC::SlotVisitor&) = JSC::JSCell::visitOutputConstraints; 387 if (myVisitOutputConstraint != jsCellVisitOutputConstraint) 385 388 clientData.outputConstraintSpaces().append(space); 386 389 IGNORE_WARNINGS_END … … 398 401 } 399 402 400 bool JSTestLegacyNoInterfaceObjectOwner::isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown> handle, void*, SlotVisitor& visitor, const char** reason)403 bool JSTestLegacyNoInterfaceObjectOwner::isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown> handle, void*, AbstractSlotVisitor& visitor, const char** reason) 401 404 { 402 405 UNUSED_PARAM(handle); -
trunk/Source/WebCore/bindings/scripts/test/JS/JSTestLegacyNoInterfaceObject.h
r270042 r273138 74 74 class JSTestLegacyNoInterfaceObjectOwner final : public JSC::WeakHandleOwner { 75 75 public: 76 bool isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown>, void* context, JSC:: SlotVisitor&, const char**) final;76 bool isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown>, void* context, JSC::AbstractSlotVisitor&, const char**) final; 77 77 void finalize(JSC::Handle<JSC::Unknown>, void* context) final; 78 78 }; -
trunk/Source/WebCore/bindings/scripts/test/JS/JSTestLegacyOverrideBuiltIns.cpp
r271269 r273138 40 40 #include <JavaScriptCore/JSCInlines.h> 41 41 #include <JavaScriptCore/JSDestructibleObjectHeapCellType.h> 42 #include <JavaScriptCore/SlotVisitorMacros.h> 42 43 #include <JavaScriptCore/SubspaceInlines.h> 43 44 #include <wtf/GetPtr.h> … … 259 260 IGNORE_WARNINGS_BEGIN("unreachable-code") 260 261 IGNORE_WARNINGS_BEGIN("tautological-compare") 261 if (&JSTestLegacyOverrideBuiltIns::visitOutputConstraints != &JSC::JSCell::visitOutputConstraints) 262 void (*myVisitOutputConstraint)(JSC::JSCell*, JSC::SlotVisitor&) = JSTestLegacyOverrideBuiltIns::visitOutputConstraints; 263 void (*jsCellVisitOutputConstraint)(JSC::JSCell*, JSC::SlotVisitor&) = JSC::JSCell::visitOutputConstraints; 264 if (myVisitOutputConstraint != jsCellVisitOutputConstraint) 262 265 clientData.outputConstraintSpaces().append(space); 263 266 IGNORE_WARNINGS_END … … 275 278 } 276 279 277 bool JSTestLegacyOverrideBuiltInsOwner::isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown> handle, void*, SlotVisitor& visitor, const char** reason)280 bool JSTestLegacyOverrideBuiltInsOwner::isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown> handle, void*, AbstractSlotVisitor& visitor, const char** reason) 278 281 { 279 282 UNUSED_PARAM(handle); -
trunk/Source/WebCore/bindings/scripts/test/JS/JSTestLegacyOverrideBuiltIns.h
r271269 r273138 71 71 class JSTestLegacyOverrideBuiltInsOwner final : public JSC::WeakHandleOwner { 72 72 public: 73 bool isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown>, void* context, JSC:: SlotVisitor&, const char**) final;73 bool isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown>, void* context, JSC::AbstractSlotVisitor&, const char**) final; 74 74 void finalize(JSC::Handle<JSC::Unknown>, void* context) final; 75 75 }; -
trunk/Source/WebCore/bindings/scripts/test/JS/JSTestMapLike.cpp
r268990 r273138 40 40 #include <JavaScriptCore/JSCInlines.h> 41 41 #include <JavaScriptCore/JSDestructibleObjectHeapCellType.h> 42 #include <JavaScriptCore/SlotVisitorMacros.h> 42 43 #include <JavaScriptCore/SubspaceInlines.h> 43 44 #include <wtf/GetPtr.h> … … 381 382 IGNORE_WARNINGS_BEGIN("unreachable-code") 382 383 IGNORE_WARNINGS_BEGIN("tautological-compare") 383 if (&JSTestMapLike::visitOutputConstraints != &JSC::JSCell::visitOutputConstraints) 384 void (*myVisitOutputConstraint)(JSC::JSCell*, JSC::SlotVisitor&) = JSTestMapLike::visitOutputConstraints; 385 void (*jsCellVisitOutputConstraint)(JSC::JSCell*, JSC::SlotVisitor&) = JSC::JSCell::visitOutputConstraints; 386 if (myVisitOutputConstraint != jsCellVisitOutputConstraint) 384 387 clientData.outputConstraintSpaces().append(space); 385 388 IGNORE_WARNINGS_END … … 397 400 } 398 401 399 bool JSTestMapLikeOwner::isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown> handle, void*, SlotVisitor& visitor, const char** reason)402 bool JSTestMapLikeOwner::isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown> handle, void*, AbstractSlotVisitor& visitor, const char** reason) 400 403 { 401 404 UNUSED_PARAM(handle); -
trunk/Source/WebCore/bindings/scripts/test/JS/JSTestMapLike.h
r270042 r273138 66 66 class JSTestMapLikeOwner final : public JSC::WeakHandleOwner { 67 67 public: 68 bool isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown>, void* context, JSC:: SlotVisitor&, const char**) final;68 bool isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown>, void* context, JSC::AbstractSlotVisitor&, const char**) final; 69 69 void finalize(JSC::Handle<JSC::Unknown>, void* context) final; 70 70 }; -
trunk/Source/WebCore/bindings/scripts/test/JS/JSTestMapLikeWithOverriddenOperations.cpp
r268990 r273138 41 41 #include <JavaScriptCore/JSCInlines.h> 42 42 #include <JavaScriptCore/JSDestructibleObjectHeapCellType.h> 43 #include <JavaScriptCore/SlotVisitorMacros.h> 43 44 #include <JavaScriptCore/SubspaceInlines.h> 44 45 #include <wtf/GetPtr.h> … … 393 394 IGNORE_WARNINGS_BEGIN("unreachable-code") 394 395 IGNORE_WARNINGS_BEGIN("tautological-compare") 395 if (&JSTestMapLikeWithOverriddenOperations::visitOutputConstraints != &JSC::JSCell::visitOutputConstraints) 396 void (*myVisitOutputConstraint)(JSC::JSCell*, JSC::SlotVisitor&) = JSTestMapLikeWithOverriddenOperations::visitOutputConstraints; 397 void (*jsCellVisitOutputConstraint)(JSC::JSCell*, JSC::SlotVisitor&) = JSC::JSCell::visitOutputConstraints; 398 if (myVisitOutputConstraint != jsCellVisitOutputConstraint) 396 399 clientData.outputConstraintSpaces().append(space); 397 400 IGNORE_WARNINGS_END … … 409 412 } 410 413 411 bool JSTestMapLikeWithOverriddenOperationsOwner::isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown> handle, void*, SlotVisitor& visitor, const char** reason)414 bool JSTestMapLikeWithOverriddenOperationsOwner::isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown> handle, void*, AbstractSlotVisitor& visitor, const char** reason) 412 415 { 413 416 UNUSED_PARAM(handle); -
trunk/Source/WebCore/bindings/scripts/test/JS/JSTestMapLikeWithOverriddenOperations.h
r270042 r273138 66 66 class JSTestMapLikeWithOverriddenOperationsOwner final : public JSC::WeakHandleOwner { 67 67 public: 68 bool isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown>, void* context, JSC:: SlotVisitor&, const char**) final;68 bool isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown>, void* context, JSC::AbstractSlotVisitor&, const char**) final; 69 69 void finalize(JSC::Handle<JSC::Unknown>, void* context) final; 70 70 }; -
trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNamedAndIndexedSetterNoIdentifier.cpp
r271269 r273138 37 37 #include <JavaScriptCore/JSDestructibleObjectHeapCellType.h> 38 38 #include <JavaScriptCore/PropertyNameArray.h> 39 #include <JavaScriptCore/SlotVisitorMacros.h> 39 40 #include <JavaScriptCore/SubspaceInlines.h> 40 41 #include <wtf/GetPtr.h> … … 339 340 IGNORE_WARNINGS_BEGIN("unreachable-code") 340 341 IGNORE_WARNINGS_BEGIN("tautological-compare") 341 if (&JSTestNamedAndIndexedSetterNoIdentifier::visitOutputConstraints != &JSC::JSCell::visitOutputConstraints) 342 void (*myVisitOutputConstraint)(JSC::JSCell*, JSC::SlotVisitor&) = JSTestNamedAndIndexedSetterNoIdentifier::visitOutputConstraints; 343 void (*jsCellVisitOutputConstraint)(JSC::JSCell*, JSC::SlotVisitor&) = JSC::JSCell::visitOutputConstraints; 344 if (myVisitOutputConstraint != jsCellVisitOutputConstraint) 342 345 clientData.outputConstraintSpaces().append(space); 343 346 IGNORE_WARNINGS_END … … 355 358 } 356 359 357 bool JSTestNamedAndIndexedSetterNoIdentifierOwner::isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown> handle, void*, SlotVisitor& visitor, const char** reason)360 bool JSTestNamedAndIndexedSetterNoIdentifierOwner::isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown> handle, void*, AbstractSlotVisitor& visitor, const char** reason) 358 361 { 359 362 UNUSED_PARAM(handle); -
trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNamedAndIndexedSetterNoIdentifier.h
r271269 r273138 74 74 class JSTestNamedAndIndexedSetterNoIdentifierOwner final : public JSC::WeakHandleOwner { 75 75 public: 76 bool isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown>, void* context, JSC:: SlotVisitor&, const char**) final;76 bool isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown>, void* context, JSC::AbstractSlotVisitor&, const char**) final; 77 77 void finalize(JSC::Handle<JSC::Unknown>, void* context) final; 78 78 }; -
trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNamedAndIndexedSetterThrowingException.cpp
r271269 r273138 37 37 #include <JavaScriptCore/JSDestructibleObjectHeapCellType.h> 38 38 #include <JavaScriptCore/PropertyNameArray.h> 39 #include <JavaScriptCore/SlotVisitorMacros.h> 39 40 #include <JavaScriptCore/SubspaceInlines.h> 40 41 #include <wtf/GetPtr.h> … … 339 340 IGNORE_WARNINGS_BEGIN("unreachable-code") 340 341 IGNORE_WARNINGS_BEGIN("tautological-compare") 341 if (&JSTestNamedAndIndexedSetterThrowingException::visitOutputConstraints != &JSC::JSCell::visitOutputConstraints) 342 void (*myVisitOutputConstraint)(JSC::JSCell*, JSC::SlotVisitor&) = JSTestNamedAndIndexedSetterThrowingException::visitOutputConstraints; 343 void (*jsCellVisitOutputConstraint)(JSC::JSCell*, JSC::SlotVisitor&) = JSC::JSCell::visitOutputConstraints; 344 if (myVisitOutputConstraint != jsCellVisitOutputConstraint) 342 345 clientData.outputConstraintSpaces().append(space); 343 346 IGNORE_WARNINGS_END … … 355 358 } 356 359 357 bool JSTestNamedAndIndexedSetterThrowingExceptionOwner::isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown> handle, void*, SlotVisitor& visitor, const char** reason)360 bool JSTestNamedAndIndexedSetterThrowingExceptionOwner::isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown> handle, void*, AbstractSlotVisitor& visitor, const char** reason) 358 361 { 359 362 UNUSED_PARAM(handle); -
trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNamedAndIndexedSetterThrowingException.h
r271269 r273138 74 74 class JSTestNamedAndIndexedSetterThrowingExceptionOwner final : public JSC::WeakHandleOwner { 75 75 public: 76 bool isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown>, void* context, JSC:: SlotVisitor&, const char**) final;76 bool isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown>, void* context, JSC::AbstractSlotVisitor&, const char**) final; 77 77 void finalize(JSC::Handle<JSC::Unknown>, void* context) final; 78 78 }; -
trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNamedAndIndexedSetterWithIdentifier.cpp
r271269 r273138 39 39 #include <JavaScriptCore/JSDestructibleObjectHeapCellType.h> 40 40 #include <JavaScriptCore/PropertyNameArray.h> 41 #include <JavaScriptCore/SlotVisitorMacros.h> 41 42 #include <JavaScriptCore/SubspaceInlines.h> 42 43 #include <wtf/GetPtr.h> … … 403 404 IGNORE_WARNINGS_BEGIN("unreachable-code") 404 405 IGNORE_WARNINGS_BEGIN("tautological-compare") 405 if (&JSTestNamedAndIndexedSetterWithIdentifier::visitOutputConstraints != &JSC::JSCell::visitOutputConstraints) 406 void (*myVisitOutputConstraint)(JSC::JSCell*, JSC::SlotVisitor&) = JSTestNamedAndIndexedSetterWithIdentifier::visitOutputConstraints; 407 void (*jsCellVisitOutputConstraint)(JSC::JSCell*, JSC::SlotVisitor&) = JSC::JSCell::visitOutputConstraints; 408 if (myVisitOutputConstraint != jsCellVisitOutputConstraint) 406 409 clientData.outputConstraintSpaces().append(space); 407 410 IGNORE_WARNINGS_END … … 419 422 } 420 423 421 bool JSTestNamedAndIndexedSetterWithIdentifierOwner::isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown> handle, void*, SlotVisitor& visitor, const char** reason)424 bool JSTestNamedAndIndexedSetterWithIdentifierOwner::isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown> handle, void*, AbstractSlotVisitor& visitor, const char** reason) 422 425 { 423 426 UNUSED_PARAM(handle); -
trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNamedAndIndexedSetterWithIdentifier.h
r271269 r273138 74 74 class JSTestNamedAndIndexedSetterWithIdentifierOwner final : public JSC::WeakHandleOwner { 75 75 public: 76 bool isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown>, void* context, JSC:: SlotVisitor&, const char**) final;76 bool isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown>, void* context, JSC::AbstractSlotVisitor&, const char**) final; 77 77 void finalize(JSC::Handle<JSC::Unknown>, void* context) final; 78 78 }; -
trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNamedDeleterNoIdentifier.cpp
r271269 r273138 36 36 #include <JavaScriptCore/JSCInlines.h> 37 37 #include <JavaScriptCore/JSDestructibleObjectHeapCellType.h> 38 #include <JavaScriptCore/SlotVisitorMacros.h> 38 39 #include <JavaScriptCore/SubspaceInlines.h> 39 40 #include <wtf/GetPtr.h> … … 251 252 IGNORE_WARNINGS_BEGIN("unreachable-code") 252 253 IGNORE_WARNINGS_BEGIN("tautological-compare") 253 if (&JSTestNamedDeleterNoIdentifier::visitOutputConstraints != &JSC::JSCell::visitOutputConstraints) 254 void (*myVisitOutputConstraint)(JSC::JSCell*, JSC::SlotVisitor&) = JSTestNamedDeleterNoIdentifier::visitOutputConstraints; 255 void (*jsCellVisitOutputConstraint)(JSC::JSCell*, JSC::SlotVisitor&) = JSC::JSCell::visitOutputConstraints; 256 if (myVisitOutputConstraint != jsCellVisitOutputConstraint) 254 257 clientData.outputConstraintSpaces().append(space); 255 258 IGNORE_WARNINGS_END … … 267 270 } 268 271 269 bool JSTestNamedDeleterNoIdentifierOwner::isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown> handle, void*, SlotVisitor& visitor, const char** reason)272 bool JSTestNamedDeleterNoIdentifierOwner::isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown> handle, void*, AbstractSlotVisitor& visitor, const char** reason) 270 273 { 271 274 UNUSED_PARAM(handle); -
trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNamedDeleterNoIdentifier.h
r271269 r273138 73 73 class JSTestNamedDeleterNoIdentifierOwner final : public JSC::WeakHandleOwner { 74 74 public: 75 bool isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown>, void* context, JSC:: SlotVisitor&, const char**) final;75 bool isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown>, void* context, JSC::AbstractSlotVisitor&, const char**) final; 76 76 void finalize(JSC::Handle<JSC::Unknown>, void* context) final; 77 77 }; -
trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNamedDeleterThrowingException.cpp
r271269 r273138 36 36 #include <JavaScriptCore/JSCInlines.h> 37 37 #include <JavaScriptCore/JSDestructibleObjectHeapCellType.h> 38 #include <JavaScriptCore/SlotVisitorMacros.h> 38 39 #include <JavaScriptCore/SubspaceInlines.h> 39 40 #include <wtf/GetPtr.h> … … 251 252 IGNORE_WARNINGS_BEGIN("unreachable-code") 252 253 IGNORE_WARNINGS_BEGIN("tautological-compare") 253 if (&JSTestNamedDeleterThrowingException::visitOutputConstraints != &JSC::JSCell::visitOutputConstraints) 254 void (*myVisitOutputConstraint)(JSC::JSCell*, JSC::SlotVisitor&) = JSTestNamedDeleterThrowingException::visitOutputConstraints; 255 void (*jsCellVisitOutputConstraint)(JSC::JSCell*, JSC::SlotVisitor&) = JSC::JSCell::visitOutputConstraints; 256 if (myVisitOutputConstraint != jsCellVisitOutputConstraint) 254 257 clientData.outputConstraintSpaces().append(space); 255 258 IGNORE_WARNINGS_END … … 267 270 } 268 271 269 bool JSTestNamedDeleterThrowingExceptionOwner::isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown> handle, void*, SlotVisitor& visitor, const char** reason)272 bool JSTestNamedDeleterThrowingExceptionOwner::isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown> handle, void*, AbstractSlotVisitor& visitor, const char** reason) 270 273 { 271 274 UNUSED_PARAM(handle); -
trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNamedDeleterThrowingException.h
r271269 r273138 73 73 class JSTestNamedDeleterThrowingExceptionOwner final : public JSC::WeakHandleOwner { 74 74 public: 75 bool isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown>, void* context, JSC:: SlotVisitor&, const char**) final;75 bool isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown>, void* context, JSC::AbstractSlotVisitor&, const char**) final; 76 76 void finalize(JSC::Handle<JSC::Unknown>, void* context) final; 77 77 }; -
trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNamedDeleterWithIdentifier.cpp
r271269 r273138 37 37 #include <JavaScriptCore/JSCInlines.h> 38 38 #include <JavaScriptCore/JSDestructibleObjectHeapCellType.h> 39 #include <JavaScriptCore/SlotVisitorMacros.h> 39 40 #include <JavaScriptCore/SubspaceInlines.h> 40 41 #include <wtf/GetPtr.h> … … 280 281 IGNORE_WARNINGS_BEGIN("unreachable-code") 281 282 IGNORE_WARNINGS_BEGIN("tautological-compare") 282 if (&JSTestNamedDeleterWithIdentifier::visitOutputConstraints != &JSC::JSCell::visitOutputConstraints) 283 void (*myVisitOutputConstraint)(JSC::JSCell*, JSC::SlotVisitor&) = JSTestNamedDeleterWithIdentifier::visitOutputConstraints; 284 void (*jsCellVisitOutputConstraint)(JSC::JSCell*, JSC::SlotVisitor&) = JSC::JSCell::visitOutputConstraints; 285 if (myVisitOutputConstraint != jsCellVisitOutputConstraint) 283 286 clientData.outputConstraintSpaces().append(space); 284 287 IGNORE_WARNINGS_END … … 296 299 } 297 300 298 bool JSTestNamedDeleterWithIdentifierOwner::isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown> handle, void*, SlotVisitor& visitor, const char** reason)301 bool JSTestNamedDeleterWithIdentifierOwner::isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown> handle, void*, AbstractSlotVisitor& visitor, const char** reason) 299 302 { 300 303 UNUSED_PARAM(handle); -
trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNamedDeleterWithIdentifier.h
r271269 r273138 73 73 class JSTestNamedDeleterWithIdentifierOwner final : public JSC::WeakHandleOwner { 74 74 public: 75 bool isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown>, void* context, JSC:: SlotVisitor&, const char**) final;75 bool isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown>, void* context, JSC::AbstractSlotVisitor&, const char**) final; 76 76 void finalize(JSC::Handle<JSC::Unknown>, void* context) final; 77 77 }; -
trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNamedDeleterWithIndexedGetter.cpp
r271269 r273138 37 37 #include <JavaScriptCore/JSDestructibleObjectHeapCellType.h> 38 38 #include <JavaScriptCore/PropertyNameArray.h> 39 #include <JavaScriptCore/SlotVisitorMacros.h> 39 40 #include <JavaScriptCore/SubspaceInlines.h> 40 41 #include <wtf/GetPtr.h> … … 265 266 IGNORE_WARNINGS_BEGIN("unreachable-code") 266 267 IGNORE_WARNINGS_BEGIN("tautological-compare") 267 if (&JSTestNamedDeleterWithIndexedGetter::visitOutputConstraints != &JSC::JSCell::visitOutputConstraints) 268 void (*myVisitOutputConstraint)(JSC::JSCell*, JSC::SlotVisitor&) = JSTestNamedDeleterWithIndexedGetter::visitOutputConstraints; 269 void (*jsCellVisitOutputConstraint)(JSC::JSCell*, JSC::SlotVisitor&) = JSC::JSCell::visitOutputConstraints; 270 if (myVisitOutputConstraint != jsCellVisitOutputConstraint) 268 271 clientData.outputConstraintSpaces().append(space); 269 272 IGNORE_WARNINGS_END … … 281 284 } 282 285 283 bool JSTestNamedDeleterWithIndexedGetterOwner::isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown> handle, void*, SlotVisitor& visitor, const char** reason)286 bool JSTestNamedDeleterWithIndexedGetterOwner::isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown> handle, void*, AbstractSlotVisitor& visitor, const char** reason) 284 287 { 285 288 UNUSED_PARAM(handle); -
trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNamedDeleterWithIndexedGetter.h
r271269 r273138 73 73 class JSTestNamedDeleterWithIndexedGetterOwner final : public JSC::WeakHandleOwner { 74 74 public: 75 bool isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown>, void* context, JSC:: SlotVisitor&, const char**) final;75 bool isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown>, void* context, JSC::AbstractSlotVisitor&, const char**) final; 76 76 void finalize(JSC::Handle<JSC::Unknown>, void* context) final; 77 77 }; -
trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNamedGetterCallWith.cpp
r271269 r273138 36 36 #include <JavaScriptCore/JSCInlines.h> 37 37 #include <JavaScriptCore/JSDestructibleObjectHeapCellType.h> 38 #include <JavaScriptCore/SlotVisitorMacros.h> 38 39 #include <JavaScriptCore/SubspaceInlines.h> 39 40 #include <wtf/GetPtr.h> … … 225 226 IGNORE_WARNINGS_BEGIN("unreachable-code") 226 227 IGNORE_WARNINGS_BEGIN("tautological-compare") 227 if (&JSTestNamedGetterCallWith::visitOutputConstraints != &JSC::JSCell::visitOutputConstraints) 228 void (*myVisitOutputConstraint)(JSC::JSCell*, JSC::SlotVisitor&) = JSTestNamedGetterCallWith::visitOutputConstraints; 229 void (*jsCellVisitOutputConstraint)(JSC::JSCell*, JSC::SlotVisitor&) = JSC::JSCell::visitOutputConstraints; 230 if (myVisitOutputConstraint != jsCellVisitOutputConstraint) 228 231 clientData.outputConstraintSpaces().append(space); 229 232 IGNORE_WARNINGS_END … … 241 244 } 242 245 243 bool JSTestNamedGetterCallWithOwner::isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown> handle, void*, SlotVisitor& visitor, const char** reason)246 bool JSTestNamedGetterCallWithOwner::isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown> handle, void*, AbstractSlotVisitor& visitor, const char** reason) 244 247 { 245 248 UNUSED_PARAM(handle); -
trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNamedGetterCallWith.h
r271269 r273138 71 71 class JSTestNamedGetterCallWithOwner final : public JSC::WeakHandleOwner { 72 72 public: 73 bool isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown>, void* context, JSC:: SlotVisitor&, const char**) final;73 bool isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown>, void* context, JSC::AbstractSlotVisitor&, const char**) final; 74 74 void finalize(JSC::Handle<JSC::Unknown>, void* context) final; 75 75 }; -
trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNamedGetterNoIdentifier.cpp
r271269 r273138 36 36 #include <JavaScriptCore/JSCInlines.h> 37 37 #include <JavaScriptCore/JSDestructibleObjectHeapCellType.h> 38 #include <JavaScriptCore/SlotVisitorMacros.h> 38 39 #include <JavaScriptCore/SubspaceInlines.h> 39 40 #include <wtf/GetPtr.h> … … 225 226 IGNORE_WARNINGS_BEGIN("unreachable-code") 226 227 IGNORE_WARNINGS_BEGIN("tautological-compare") 227 if (&JSTestNamedGetterNoIdentifier::visitOutputConstraints != &JSC::JSCell::visitOutputConstraints) 228 void (*myVisitOutputConstraint)(JSC::JSCell*, JSC::SlotVisitor&) = JSTestNamedGetterNoIdentifier::visitOutputConstraints; 229 void (*jsCellVisitOutputConstraint)(JSC::JSCell*, JSC::SlotVisitor&) = JSC::JSCell::visitOutputConstraints; 230 if (myVisitOutputConstraint != jsCellVisitOutputConstraint) 228 231 clientData.outputConstraintSpaces().append(space); 229 232 IGNORE_WARNINGS_END … … 241 244 } 242 245 243 bool JSTestNamedGetterNoIdentifierOwner::isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown> handle, void*, SlotVisitor& visitor, const char** reason)246 bool JSTestNamedGetterNoIdentifierOwner::isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown> handle, void*, AbstractSlotVisitor& visitor, const char** reason) 244 247 { 245 248 UNUSED_PARAM(handle); -
trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNamedGetterNoIdentifier.h
r271269 r273138 71 71 class JSTestNamedGetterNoIdentifierOwner final : public JSC::WeakHandleOwner { 72 72 public: 73 bool isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown>, void* context, JSC:: SlotVisitor&, const char**) final;73 bool isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown>, void* context, JSC::AbstractSlotVisitor&, const char**) final; 74 74 void finalize(JSC::Handle<JSC::Unknown>, void* context) final; 75 75 }; -
trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNamedGetterWithIdentifier.cpp
r271269 r273138 37 37 #include <JavaScriptCore/JSCInlines.h> 38 38 #include <JavaScriptCore/JSDestructibleObjectHeapCellType.h> 39 #include <JavaScriptCore/SlotVisitorMacros.h> 39 40 #include <JavaScriptCore/SubspaceInlines.h> 40 41 #include <wtf/GetPtr.h> … … 256 257 IGNORE_WARNINGS_BEGIN("unreachable-code") 257 258 IGNORE_WARNINGS_BEGIN("tautological-compare") 258 if (&JSTestNamedGetterWithIdentifier::visitOutputConstraints != &JSC::JSCell::visitOutputConstraints) 259 void (*myVisitOutputConstraint)(JSC::JSCell*, JSC::SlotVisitor&) = JSTestNamedGetterWithIdentifier::visitOutputConstraints; 260 void (*jsCellVisitOutputConstraint)(JSC::JSCell*, JSC::SlotVisitor&) = JSC::JSCell::visitOutputConstraints; 261 if (myVisitOutputConstraint != jsCellVisitOutputConstraint) 259 262 clientData.outputConstraintSpaces().append(space); 260 263 IGNORE_WARNINGS_END … … 272 275 } 273 276 274 bool JSTestNamedGetterWithIdentifierOwner::isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown> handle, void*, SlotVisitor& visitor, const char** reason)277 bool JSTestNamedGetterWithIdentifierOwner::isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown> handle, void*, AbstractSlotVisitor& visitor, const char** reason) 275 278 { 276 279 UNUSED_PARAM(handle); -
trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNamedGetterWithIdentifier.h
r271269 r273138 71 71 class JSTestNamedGetterWithIdentifierOwner final : public JSC::WeakHandleOwner { 72 72 public: 73 bool isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown>, void* context, JSC:: SlotVisitor&, const char**) final;73 bool isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown>, void* context, JSC::AbstractSlotVisitor&, const char**) final; 74 74 void finalize(JSC::Handle<JSC::Unknown>, void* context) final; 75 75 }; -
trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNamedSetterNoIdentifier.cpp
r271269 r273138 36 36 #include <JavaScriptCore/JSCInlines.h> 37 37 #include <JavaScriptCore/JSDestructibleObjectHeapCellType.h> 38 #include <JavaScriptCore/SlotVisitorMacros.h> 38 39 #include <JavaScriptCore/SubspaceInlines.h> 39 40 #include <wtf/GetPtr.h> … … 294 295 IGNORE_WARNINGS_BEGIN("unreachable-code") 295 296 IGNORE_WARNINGS_BEGIN("tautological-compare") 296 if (&JSTestNamedSetterNoIdentifier::visitOutputConstraints != &JSC::JSCell::visitOutputConstraints) 297 void (*myVisitOutputConstraint)(JSC::JSCell*, JSC::SlotVisitor&) = JSTestNamedSetterNoIdentifier::visitOutputConstraints; 298 void (*jsCellVisitOutputConstraint)(JSC::JSCell*, JSC::SlotVisitor&) = JSC::JSCell::visitOutputConstraints; 299 if (myVisitOutputConstraint != jsCellVisitOutputConstraint) 297 300 clientData.outputConstraintSpaces().append(space); 298 301 IGNORE_WARNINGS_END … … 310 313 } 311 314 312 bool JSTestNamedSetterNoIdentifierOwner::isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown> handle, void*, SlotVisitor& visitor, const char** reason)315 bool JSTestNamedSetterNoIdentifierOwner::isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown> handle, void*, AbstractSlotVisitor& visitor, const char** reason) 313 316 { 314 317 UNUSED_PARAM(handle); -
trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNamedSetterNoIdentifier.h
r271269 r273138 74 74 class JSTestNamedSetterNoIdentifierOwner final : public JSC::WeakHandleOwner { 75 75 public: 76 bool isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown>, void* context, JSC:: SlotVisitor&, const char**) final;76 bool isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown>, void* context, JSC::AbstractSlotVisitor&, const char**) final; 77 77 void finalize(JSC::Handle<JSC::Unknown>, void* context) final; 78 78 }; -
trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNamedSetterThrowingException.cpp
r271269 r273138 36 36 #include <JavaScriptCore/JSCInlines.h> 37 37 #include <JavaScriptCore/JSDestructibleObjectHeapCellType.h> 38 #include <JavaScriptCore/SlotVisitorMacros.h> 38 39 #include <JavaScriptCore/SubspaceInlines.h> 39 40 #include <wtf/GetPtr.h> … … 294 295 IGNORE_WARNINGS_BEGIN("unreachable-code") 295 296 IGNORE_WARNINGS_BEGIN("tautological-compare") 296 if (&JSTestNamedSetterThrowingException::visitOutputConstraints != &JSC::JSCell::visitOutputConstraints) 297 void (*myVisitOutputConstraint)(JSC::JSCell*, JSC::SlotVisitor&) = JSTestNamedSetterThrowingException::visitOutputConstraints; 298 void (*jsCellVisitOutputConstraint)(JSC::JSCell*, JSC::SlotVisitor&) = JSC::JSCell::visitOutputConstraints; 299 if (myVisitOutputConstraint != jsCellVisitOutputConstraint) 297 300 clientData.outputConstraintSpaces().append(space); 298 301 IGNORE_WARNINGS_END … … 310 313 } 311 314 312 bool JSTestNamedSetterThrowingExceptionOwner::isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown> handle, void*, SlotVisitor& visitor, const char** reason)315 bool JSTestNamedSetterThrowingExceptionOwner::isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown> handle, void*, AbstractSlotVisitor& visitor, const char** reason) 313 316 { 314 317 UNUSED_PARAM(handle); -
trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNamedSetterThrowingException.h
r271269 r273138 74 74 class JSTestNamedSetterThrowingExceptionOwner final : public JSC::WeakHandleOwner { 75 75 public: 76 bool isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown>, void* context, JSC:: SlotVisitor&, const char**) final;76 bool isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown>, void* context, JSC::AbstractSlotVisitor&, const char**) final; 77 77 void finalize(JSC::Handle<JSC::Unknown>, void* context) final; 78 78 }; -
trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNamedSetterWithIdentifier.cpp
r271269 r273138 37 37 #include <JavaScriptCore/JSCInlines.h> 38 38 #include <JavaScriptCore/JSDestructibleObjectHeapCellType.h> 39 #include <JavaScriptCore/SlotVisitorMacros.h> 39 40 #include <JavaScriptCore/SubspaceInlines.h> 40 41 #include <wtf/GetPtr.h> … … 330 331 IGNORE_WARNINGS_BEGIN("unreachable-code") 331 332 IGNORE_WARNINGS_BEGIN("tautological-compare") 332 if (&JSTestNamedSetterWithIdentifier::visitOutputConstraints != &JSC::JSCell::visitOutputConstraints) 333 void (*myVisitOutputConstraint)(JSC::JSCell*, JSC::SlotVisitor&) = JSTestNamedSetterWithIdentifier::visitOutputConstraints; 334 void (*jsCellVisitOutputConstraint)(JSC::JSCell*, JSC::SlotVisitor&) = JSC::JSCell::visitOutputConstraints; 335 if (myVisitOutputConstraint != jsCellVisitOutputConstraint) 333 336 clientData.outputConstraintSpaces().append(space); 334 337 IGNORE_WARNINGS_END … … 346 349 } 347 350 348 bool JSTestNamedSetterWithIdentifierOwner::isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown> handle, void*, SlotVisitor& visitor, const char** reason)351 bool JSTestNamedSetterWithIdentifierOwner::isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown> handle, void*, AbstractSlotVisitor& visitor, const char** reason) 349 352 { 350 353 UNUSED_PARAM(handle); -
trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNamedSetterWithIdentifier.h
r271269 r273138 74 74 class JSTestNamedSetterWithIdentifierOwner final : public JSC::WeakHandleOwner { 75 75 public: 76 bool isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown>, void* context, JSC:: SlotVisitor&, const char**) final;76 bool isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown>, void* context, JSC::AbstractSlotVisitor&, const char**) final; 77 77 void finalize(JSC::Handle<JSC::Unknown>, void* context) final; 78 78 }; -
trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNamedSetterWithIndexedGetter.cpp
r271269 r273138 39 39 #include <JavaScriptCore/JSDestructibleObjectHeapCellType.h> 40 40 #include <JavaScriptCore/PropertyNameArray.h> 41 #include <JavaScriptCore/SlotVisitorMacros.h> 41 42 #include <JavaScriptCore/SubspaceInlines.h> 42 43 #include <wtf/GetPtr.h> … … 375 376 IGNORE_WARNINGS_BEGIN("unreachable-code") 376 377 IGNORE_WARNINGS_BEGIN("tautological-compare") 377 if (&JSTestNamedSetterWithIndexedGetter::visitOutputConstraints != &JSC::JSCell::visitOutputConstraints) 378 void (*myVisitOutputConstraint)(JSC::JSCell*, JSC::SlotVisitor&) = JSTestNamedSetterWithIndexedGetter::visitOutputConstraints; 379 void (*jsCellVisitOutputConstraint)(JSC::JSCell*, JSC::SlotVisitor&) = JSC::JSCell::visitOutputConstraints; 380 if (myVisitOutputConstraint != jsCellVisitOutputConstraint) 378 381 clientData.outputConstraintSpaces().append(space); 379 382 IGNORE_WARNINGS_END … … 391 394 } 392 395 393 bool JSTestNamedSetterWithIndexedGetterOwner::isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown> handle, void*, SlotVisitor& visitor, const char** reason)396 bool JSTestNamedSetterWithIndexedGetterOwner::isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown> handle, void*, AbstractSlotVisitor& visitor, const char** reason) 394 397 { 395 398 UNUSED_PARAM(handle); -
trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNamedSetterWithIndexedGetter.h
r271269 r273138 74 74 class JSTestNamedSetterWithIndexedGetterOwner final : public JSC::WeakHandleOwner { 75 75 public: 76 bool isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown>, void* context, JSC:: SlotVisitor&, const char**) final;76 bool isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown>, void* context, JSC::AbstractSlotVisitor&, const char**) final; 77 77 void finalize(JSC::Handle<JSC::Unknown>, void* context) final; 78 78 }; -
trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNamedSetterWithIndexedGetterAndSetter.cpp
r271269 r273138 39 39 #include <JavaScriptCore/JSDestructibleObjectHeapCellType.h> 40 40 #include <JavaScriptCore/PropertyNameArray.h> 41 #include <JavaScriptCore/SlotVisitorMacros.h> 41 42 #include <JavaScriptCore/SubspaceInlines.h> 42 43 #include <wtf/GetPtr.h> … … 430 431 IGNORE_WARNINGS_BEGIN("unreachable-code") 431 432 IGNORE_WARNINGS_BEGIN("tautological-compare") 432 if (&JSTestNamedSetterWithIndexedGetterAndSetter::visitOutputConstraints != &JSC::JSCell::visitOutputConstraints) 433 void (*myVisitOutputConstraint)(JSC::JSCell*, JSC::SlotVisitor&) = JSTestNamedSetterWithIndexedGetterAndSetter::visitOutputConstraints; 434 void (*jsCellVisitOutputConstraint)(JSC::JSCell*, JSC::SlotVisitor&) = JSC::JSCell::visitOutputConstraints; 435 if (myVisitOutputConstraint != jsCellVisitOutputConstraint) 433 436 clientData.outputConstraintSpaces().append(space); 434 437 IGNORE_WARNINGS_END … … 446 449 } 447 450 448 bool JSTestNamedSetterWithIndexedGetterAndSetterOwner::isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown> handle, void*, SlotVisitor& visitor, const char** reason)451 bool JSTestNamedSetterWithIndexedGetterAndSetterOwner::isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown> handle, void*, AbstractSlotVisitor& visitor, const char** reason) 449 452 { 450 453 UNUSED_PARAM(handle); -
trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNamedSetterWithIndexedGetterAndSetter.h
r271269 r273138 74 74 class JSTestNamedSetterWithIndexedGetterAndSetterOwner final : public JSC::WeakHandleOwner { 75 75 public: 76 bool isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown>, void* context, JSC:: SlotVisitor&, const char**) final;76 bool isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown>, void* context, JSC::AbstractSlotVisitor&, const char**) final; 77 77 void finalize(JSC::Handle<JSC::Unknown>, void* context) final; 78 78 }; -
trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNamedSetterWithLegacyOverrideBuiltIns.cpp
r271269 r273138 36 36 #include <JavaScriptCore/JSCInlines.h> 37 37 #include <JavaScriptCore/JSDestructibleObjectHeapCellType.h> 38 #include <JavaScriptCore/SlotVisitorMacros.h> 38 39 #include <JavaScriptCore/SubspaceInlines.h> 39 40 #include <wtf/GetPtr.h> … … 275 276 IGNORE_WARNINGS_BEGIN("unreachable-code") 276 277 IGNORE_WARNINGS_BEGIN("tautological-compare") 277 if (&JSTestNamedSetterWithLegacyOverrideBuiltIns::visitOutputConstraints != &JSC::JSCell::visitOutputConstraints) 278 void (*myVisitOutputConstraint)(JSC::JSCell*, JSC::SlotVisitor&) = JSTestNamedSetterWithLegacyOverrideBuiltIns::visitOutputConstraints; 279 void (*jsCellVisitOutputConstraint)(JSC::JSCell*, JSC::SlotVisitor&) = JSC::JSCell::visitOutputConstraints; 280 if (myVisitOutputConstraint != jsCellVisitOutputConstraint) 278 281 clientData.outputConstraintSpaces().append(space); 279 282 IGNORE_WARNINGS_END … … 291 294 } 292 295 293 bool JSTestNamedSetterWithLegacyOverrideBuiltInsOwner::isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown> handle, void*, SlotVisitor& visitor, const char** reason)296 bool JSTestNamedSetterWithLegacyOverrideBuiltInsOwner::isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown> handle, void*, AbstractSlotVisitor& visitor, const char** reason) 294 297 { 295 298 UNUSED_PARAM(handle); -
trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNamedSetterWithLegacyOverrideBuiltIns.h
r271269 r273138 74 74 class JSTestNamedSetterWithLegacyOverrideBuiltInsOwner final : public JSC::WeakHandleOwner { 75 75 public: 76 bool isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown>, void* context, JSC:: SlotVisitor&, const char**) final;76 bool isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown>, void* context, JSC::AbstractSlotVisitor&, const char**) final; 77 77 void finalize(JSC::Handle<JSC::Unknown>, void* context) final; 78 78 }; -
trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNamedSetterWithLegacyUnforgeableProperties.cpp
r271269 r273138 38 38 #include <JavaScriptCore/JSCInlines.h> 39 39 #include <JavaScriptCore/JSDestructibleObjectHeapCellType.h> 40 #include <JavaScriptCore/SlotVisitorMacros.h> 40 41 #include <JavaScriptCore/SubspaceInlines.h> 41 42 #include <wtf/GetPtr.h> … … 365 366 IGNORE_WARNINGS_BEGIN("unreachable-code") 366 367 IGNORE_WARNINGS_BEGIN("tautological-compare") 367 if (&JSTestNamedSetterWithLegacyUnforgeableProperties::visitOutputConstraints != &JSC::JSCell::visitOutputConstraints) 368 void (*myVisitOutputConstraint)(JSC::JSCell*, JSC::SlotVisitor&) = JSTestNamedSetterWithLegacyUnforgeableProperties::visitOutputConstraints; 369 void (*jsCellVisitOutputConstraint)(JSC::JSCell*, JSC::SlotVisitor&) = JSC::JSCell::visitOutputConstraints; 370 if (myVisitOutputConstraint != jsCellVisitOutputConstraint) 368 371 clientData.outputConstraintSpaces().append(space); 369 372 IGNORE_WARNINGS_END … … 381 384 } 382 385 383 bool JSTestNamedSetterWithLegacyUnforgeablePropertiesOwner::isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown> handle, void*, SlotVisitor& visitor, const char** reason)386 bool JSTestNamedSetterWithLegacyUnforgeablePropertiesOwner::isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown> handle, void*, AbstractSlotVisitor& visitor, const char** reason) 384 387 { 385 388 UNUSED_PARAM(handle); -
trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNamedSetterWithLegacyUnforgeableProperties.h
r271269 r273138 74 74 class JSTestNamedSetterWithLegacyUnforgeablePropertiesOwner final : public JSC::WeakHandleOwner { 75 75 public: 76 bool isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown>, void* context, JSC:: SlotVisitor&, const char**) final;76 bool isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown>, void* context, JSC::AbstractSlotVisitor&, const char**) final; 77 77 void finalize(JSC::Handle<JSC::Unknown>, void* context) final; 78 78 }; -
trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNamedSetterWithLegacyUnforgeablePropertiesAndLegacyOverrideBuiltIns.cpp
r271269 r273138 38 38 #include <JavaScriptCore/JSCInlines.h> 39 39 #include <JavaScriptCore/JSDestructibleObjectHeapCellType.h> 40 #include <JavaScriptCore/SlotVisitorMacros.h> 40 41 #include <JavaScriptCore/SubspaceInlines.h> 41 42 #include <wtf/GetPtr.h> … … 346 347 IGNORE_WARNINGS_BEGIN("unreachable-code") 347 348 IGNORE_WARNINGS_BEGIN("tautological-compare") 348 if (&JSTestNamedSetterWithLegacyUnforgeablePropertiesAndLegacyOverrideBuiltIns::visitOutputConstraints != &JSC::JSCell::visitOutputConstraints) 349 void (*myVisitOutputConstraint)(JSC::JSCell*, JSC::SlotVisitor&) = JSTestNamedSetterWithLegacyUnforgeablePropertiesAndLegacyOverrideBuiltIns::visitOutputConstraints; 350 void (*jsCellVisitOutputConstraint)(JSC::JSCell*, JSC::SlotVisitor&) = JSC::JSCell::visitOutputConstraints; 351 if (myVisitOutputConstraint != jsCellVisitOutputConstraint) 349 352 clientData.outputConstraintSpaces().append(space); 350 353 IGNORE_WARNINGS_END … … 362 365 } 363 366 364 bool JSTestNamedSetterWithLegacyUnforgeablePropertiesAndLegacyOverrideBuiltInsOwner::isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown> handle, void*, SlotVisitor& visitor, const char** reason)367 bool JSTestNamedSetterWithLegacyUnforgeablePropertiesAndLegacyOverrideBuiltInsOwner::isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown> handle, void*, AbstractSlotVisitor& visitor, const char** reason) 365 368 { 366 369 UNUSED_PARAM(handle); -
trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNamedSetterWithLegacyUnforgeablePropertiesAndLegacyOverrideBuiltIns.h
r271269 r273138 74 74 class JSTestNamedSetterWithLegacyUnforgeablePropertiesAndLegacyOverrideBuiltInsOwner final : public JSC::WeakHandleOwner { 75 75 public: 76 bool isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown>, void* context, JSC:: SlotVisitor&, const char**) final;76 bool isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown>, void* context, JSC::AbstractSlotVisitor&, const char**) final; 77 77 void finalize(JSC::Handle<JSC::Unknown>, void* context) final; 78 78 }; -
trunk/Source/WebCore/bindings/scripts/test/JS/JSTestNode.cpp
r268990 r273138 44 44 #include <JavaScriptCore/JSDestructibleObjectHeapCellType.h> 45 45 #include <JavaScriptCore/ObjectConstructor.h> 46 #include <JavaScriptCore/SlotVisitorMacros.h> 46 47 #include <JavaScriptCore/SubspaceInlines.h> 47 48 #include <wtf/GetPtr.h> … … 416 417 IGNORE_WARNINGS_BEGIN("unreachable-code") 417 418 IGNORE_WARNINGS_BEGIN("tautological-compare") 418 if (&TestNodeIterator::visitOutputConstraints != &JSC::JSCell::visitOutputConstraints) 419 void (*myVisitOutputConstraint)(JSC::JSCell*, JSC::SlotVisitor&) = TestNodeIterator::visitOutputConstraints; 420 void (*jsCellVisitOutputConstraint)(JSC::JSCell*, JSC::SlotVisitor&) = JSC::JSCell::visitOutputConstraints; 421 if (myVisitOutputConstraint != jsCellVisitOutputConstraint) 419 422 clientData.outputConstraintSpaces().append(space); 420 423 IGNORE_WARNINGS_END … … 506 509 IGNORE_WARNINGS_BEGIN("unreachable-code") 507 510 IGNORE_WARNINGS_BEGIN("tautological-compare") 508 if (&JSTestNode::visitOutputConstraints != &JSC::JSCell::visitOutputConstraints) 511 void (*myVisitOutputConstraint)(JSC::JSCell*, JSC::SlotVisitor&) = JSTestNode::visitOutputConstraints; 512 void (*jsCellVisitOutputConstraint)(JSC::JSCell*, JSC::SlotVisitor&) = JSC::JSCell::visitOutputConstraints; 513 if (myVisitOutputConstraint != jsCellVisitOutputConstraint) 509 514 clientData.outputConstraintSpaces().append(space); 510 515 IGNORE_WARNINGS_END -
trunk/Source/WebCore/bindings/scripts/test/JS/JSTestObj.cpp
r272199 r273138 93 93 #include <JavaScriptCore/ObjectConstructor.h> 94 94 #include <JavaScriptCore/PropertyNameArray.h> 95 #include <JavaScriptCore/SlotVisitorMacros.h> 95 96 #include <JavaScriptCore/SubspaceInlines.h> 96 97 #include <wtf/GetPtr.h> … … 9460 9461 IGNORE_WARNINGS_BEGIN("unreachable-code") 9461 9462 IGNORE_WARNINGS_BEGIN("tautological-compare") 9462 if (&JSTestObj::visitOutputConstraints != &JSC::JSCell::visitOutputConstraints) 9463 void (*myVisitOutputConstraint)(JSC::JSCell*, JSC::SlotVisitor&) = JSTestObj::visitOutputConstraints; 9464 void (*jsCellVisitOutputConstraint)(JSC::JSCell*, JSC::SlotVisitor&) = JSC::JSCell::visitOutputConstraints; 9465 if (myVisitOutputConstraint != jsCellVisitOutputConstraint) 9463 9466 clientData.outputConstraintSpaces().append(space); 9464 9467 IGNORE_WARNINGS_END … … 9467 9470 } 9468 9471 9469 void JSTestObj::visitChildren(JSCell* cell, SlotVisitor& visitor) 9472 template<typename Visitor> 9473 void JSTestObj::visitChildrenImpl(JSCell* cell, Visitor& visitor) 9470 9474 { 9471 9475 auto* thisObject = jsCast<JSTestObj*>(cell); … … 9479 9483 } 9480 9484 9485 DEFINE_VISIT_CHILDREN(JSTestObj); 9486 9481 9487 void JSTestObj::analyzeHeap(JSCell* cell, HeapAnalyzer& analyzer) 9482 9488 { … … 9488 9494 } 9489 9495 9490 bool JSTestObjOwner::isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown> handle, void*, SlotVisitor& visitor, const char** reason)9496 bool JSTestObjOwner::isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown> handle, void*, AbstractSlotVisitor& visitor, const char** reason) 9491 9497 { 9492 9498 UNUSED_PARAM(handle); -
trunk/Source/WebCore/bindings/scripts/test/JS/JSTestObj.h
r271269 r273138 67 67 } 68 68 static JSC::IsoSubspace* subspaceForImpl(JSC::VM& vm); 69 static void visitChildren(JSCell*, JSC::SlotVisitor&);69 DECLARE_VISIT_CHILDREN; 70 70 71 71 static void analyzeHeap(JSCell*, JSC::HeapAnalyzer&); … … 92 92 class JSTestObjOwner final : public JSC::WeakHandleOwner { 93 93 public: 94 bool isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown>, void* context, JSC:: SlotVisitor&, const char**) final;94 bool isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown>, void* context, JSC::AbstractSlotVisitor&, const char**) final; 95 95 void finalize(JSC::Handle<JSC::Unknown>, void* context) final; 96 96 }; -
trunk/Source/WebCore/bindings/scripts/test/JS/JSTestOperationConditional.cpp
r268990 r273138 38 38 #include <JavaScriptCore/JSCInlines.h> 39 39 #include <JavaScriptCore/JSDestructibleObjectHeapCellType.h> 40 #include <JavaScriptCore/SlotVisitorMacros.h> 40 41 #include <JavaScriptCore/SubspaceInlines.h> 41 42 #include <wtf/GetPtr.h> … … 241 242 IGNORE_WARNINGS_BEGIN("unreachable-code") 242 243 IGNORE_WARNINGS_BEGIN("tautological-compare") 243 if (&JSTestOperationConditional::visitOutputConstraints != &JSC::JSCell::visitOutputConstraints) 244 void (*myVisitOutputConstraint)(JSC::JSCell*, JSC::SlotVisitor&) = JSTestOperationConditional::visitOutputConstraints; 245 void (*jsCellVisitOutputConstraint)(JSC::JSCell*, JSC::SlotVisitor&) = JSC::JSCell::visitOutputConstraints; 246 if (myVisitOutputConstraint != jsCellVisitOutputConstraint) 244 247 clientData.outputConstraintSpaces().append(space); 245 248 IGNORE_WARNINGS_END … … 257 260 } 258 261 259 bool JSTestOperationConditionalOwner::isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown> handle, void*, SlotVisitor& visitor, const char** reason)262 bool JSTestOperationConditionalOwner::isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown> handle, void*, AbstractSlotVisitor& visitor, const char** reason) 260 263 { 261 264 UNUSED_PARAM(handle); -
trunk/Source/WebCore/bindings/scripts/test/JS/JSTestOperationConditional.h
r270042 r273138 68 68 class JSTestOperationConditionalOwner final : public JSC::WeakHandleOwner { 69 69 public: 70 bool isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown>, void* context, JSC:: SlotVisitor&, const char**) final;70 bool isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown>, void* context, JSC::AbstractSlotVisitor&, const char**) final; 71 71 void finalize(JSC::Handle<JSC::Unknown>, void* context) final; 72 72 }; -
trunk/Source/WebCore/bindings/scripts/test/JS/JSTestOverloadedConstructors.cpp
r268990 r273138 40 40 #include <JavaScriptCore/JSCInlines.h> 41 41 #include <JavaScriptCore/JSDestructibleObjectHeapCellType.h> 42 #include <JavaScriptCore/SlotVisitorMacros.h> 42 43 #include <JavaScriptCore/SubspaceInlines.h> 43 44 #include <wtf/GetPtr.h> … … 298 299 IGNORE_WARNINGS_BEGIN("unreachable-code") 299 300 IGNORE_WARNINGS_BEGIN("tautological-compare") 300 if (&JSTestOverloadedConstructors::visitOutputConstraints != &JSC::JSCell::visitOutputConstraints) 301 void (*myVisitOutputConstraint)(JSC::JSCell*, JSC::SlotVisitor&) = JSTestOverloadedConstructors::visitOutputConstraints; 302 void (*jsCellVisitOutputConstraint)(JSC::JSCell*, JSC::SlotVisitor&) = JSC::JSCell::visitOutputConstraints; 303 if (myVisitOutputConstraint != jsCellVisitOutputConstraint) 301 304 clientData.outputConstraintSpaces().append(space); 302 305 IGNORE_WARNINGS_END … … 314 317 } 315 318 316 bool JSTestOverloadedConstructorsOwner::isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown> handle, void*, SlotVisitor& visitor, const char** reason)319 bool JSTestOverloadedConstructorsOwner::isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown> handle, void*, AbstractSlotVisitor& visitor, const char** reason) 317 320 { 318 321 UNUSED_PARAM(handle); -
trunk/Source/WebCore/bindings/scripts/test/JS/JSTestOverloadedConstructors.h
r270042 r273138 66 66 class JSTestOverloadedConstructorsOwner final : public JSC::WeakHandleOwner { 67 67 public: 68 bool isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown>, void* context, JSC:: SlotVisitor&, const char**) final;68 bool isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown>, void* context, JSC::AbstractSlotVisitor&, const char**) final; 69 69 void finalize(JSC::Handle<JSC::Unknown>, void* context) final; 70 70 }; -
trunk/Source/WebCore/bindings/scripts/test/JS/JSTestOverloadedConstructorsWithSequence.cpp
r272199 r273138 39 39 #include <JavaScriptCore/JSCInlines.h> 40 40 #include <JavaScriptCore/JSDestructibleObjectHeapCellType.h> 41 #include <JavaScriptCore/SlotVisitorMacros.h> 41 42 #include <JavaScriptCore/SubspaceInlines.h> 42 43 #include <wtf/GetPtr.h> … … 241 242 IGNORE_WARNINGS_BEGIN("unreachable-code") 242 243 IGNORE_WARNINGS_BEGIN("tautological-compare") 243 if (&JSTestOverloadedConstructorsWithSequence::visitOutputConstraints != &JSC::JSCell::visitOutputConstraints) 244 void (*myVisitOutputConstraint)(JSC::JSCell*, JSC::SlotVisitor&) = JSTestOverloadedConstructorsWithSequence::visitOutputConstraints; 245 void (*jsCellVisitOutputConstraint)(JSC::JSCell*, JSC::SlotVisitor&) = JSC::JSCell::visitOutputConstraints; 246 if (myVisitOutputConstraint != jsCellVisitOutputConstraint) 244 247 clientData.outputConstraintSpaces().append(space); 245 248 IGNORE_WARNINGS_END … … 257 260 } 258 261 259 bool JSTestOverloadedConstructorsWithSequenceOwner::isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown> handle, void*, SlotVisitor& visitor, const char** reason)262 bool JSTestOverloadedConstructorsWithSequenceOwner::isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown> handle, void*, AbstractSlotVisitor& visitor, const char** reason) 260 263 { 261 264 UNUSED_PARAM(handle); -
trunk/Source/WebCore/bindings/scripts/test/JS/JSTestOverloadedConstructorsWithSequence.h
r270042 r273138 66 66 class JSTestOverloadedConstructorsWithSequenceOwner final : public JSC::WeakHandleOwner { 67 67 public: 68 bool isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown>, void* context, JSC:: SlotVisitor&, const char**) final;68 bool isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown>, void* context, JSC::AbstractSlotVisitor&, const char**) final; 69 69 void finalize(JSC::Handle<JSC::Unknown>, void* context) final; 70 70 }; -
trunk/Source/WebCore/bindings/scripts/test/JS/JSTestPluginInterface.cpp
r268990 r273138 35 35 #include <JavaScriptCore/JSCInlines.h> 36 36 #include <JavaScriptCore/JSDestructibleObjectHeapCellType.h> 37 #include <JavaScriptCore/SlotVisitorMacros.h> 37 38 #include <JavaScriptCore/SubspaceInlines.h> 38 39 #include <wtf/GetPtr.h> … … 235 236 IGNORE_WARNINGS_BEGIN("unreachable-code") 236 237 IGNORE_WARNINGS_BEGIN("tautological-compare") 237 if (&JSTestPluginInterface::visitOutputConstraints != &JSC::JSCell::visitOutputConstraints) 238 void (*myVisitOutputConstraint)(JSC::JSCell*, JSC::SlotVisitor&) = JSTestPluginInterface::visitOutputConstraints; 239 void (*jsCellVisitOutputConstraint)(JSC::JSCell*, JSC::SlotVisitor&) = JSC::JSCell::visitOutputConstraints; 240 if (myVisitOutputConstraint != jsCellVisitOutputConstraint) 238 241 clientData.outputConstraintSpaces().append(space); 239 242 IGNORE_WARNINGS_END … … 251 254 } 252 255 253 bool JSTestPluginInterfaceOwner::isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown> handle, void*, SlotVisitor& visitor, const char** reason)256 bool JSTestPluginInterfaceOwner::isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown> handle, void*, AbstractSlotVisitor& visitor, const char** reason) 254 257 { 255 258 UNUSED_PARAM(handle); -
trunk/Source/WebCore/bindings/scripts/test/JS/JSTestPluginInterface.h
r270042 r273138 75 75 class JSTestPluginInterfaceOwner final : public JSC::WeakHandleOwner { 76 76 public: 77 bool isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown>, void* context, JSC:: SlotVisitor&, const char**) final;77 bool isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown>, void* context, JSC::AbstractSlotVisitor&, const char**) final; 78 78 void finalize(JSC::Handle<JSC::Unknown>, void* context) final; 79 79 }; -
trunk/Source/WebCore/bindings/scripts/test/JS/JSTestPromiseRejectionEvent.cpp
r268990 r273138 41 41 #include <JavaScriptCore/JSCInlines.h> 42 42 #include <JavaScriptCore/JSDestructibleObjectHeapCellType.h> 43 #include <JavaScriptCore/SlotVisitorMacros.h> 43 44 #include <JavaScriptCore/SubspaceInlines.h> 44 45 #include <wtf/GetPtr.h> … … 309 310 IGNORE_WARNINGS_BEGIN("unreachable-code") 310 311 IGNORE_WARNINGS_BEGIN("tautological-compare") 311 if (&JSTestPromiseRejectionEvent::visitOutputConstraints != &JSC::JSCell::visitOutputConstraints) 312 void (*myVisitOutputConstraint)(JSC::JSCell*, JSC::SlotVisitor&) = JSTestPromiseRejectionEvent::visitOutputConstraints; 313 void (*jsCellVisitOutputConstraint)(JSC::JSCell*, JSC::SlotVisitor&) = JSC::JSCell::visitOutputConstraints; 314 if (myVisitOutputConstraint != jsCellVisitOutputConstraint) 312 315 clientData.outputConstraintSpaces().append(space); 313 316 IGNORE_WARNINGS_END -
trunk/Source/WebCore/bindings/scripts/test/JS/JSTestReadOnlyMapLike.cpp
r268990 r273138 40 40 #include <JavaScriptCore/JSCInlines.h> 41 41 #include <JavaScriptCore/JSDestructibleObjectHeapCellType.h> 42 #include <JavaScriptCore/SlotVisitorMacros.h> 42 43 #include <JavaScriptCore/SubspaceInlines.h> 43 44 #include <wtf/GetPtr.h> … … 318 319 IGNORE_WARNINGS_BEGIN("unreachable-code") 319 320 IGNORE_WARNINGS_BEGIN("tautological-compare") 320 if (&JSTestReadOnlyMapLike::visitOutputConstraints != &JSC::JSCell::visitOutputConstraints) 321 void (*myVisitOutputConstraint)(JSC::JSCell*, JSC::SlotVisitor&) = JSTestReadOnlyMapLike::visitOutputConstraints; 322 void (*jsCellVisitOutputConstraint)(JSC::JSCell*, JSC::SlotVisitor&) = JSC::JSCell::visitOutputConstraints; 323 if (myVisitOutputConstraint != jsCellVisitOutputConstraint) 321 324 clientData.outputConstraintSpaces().append(space); 322 325 IGNORE_WARNINGS_END … … 334 337 } 335 338 336 bool JSTestReadOnlyMapLikeOwner::isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown> handle, void*, SlotVisitor& visitor, const char** reason)339 bool JSTestReadOnlyMapLikeOwner::isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown> handle, void*, AbstractSlotVisitor& visitor, const char** reason) 337 340 { 338 341 UNUSED_PARAM(handle); -
trunk/Source/WebCore/bindings/scripts/test/JS/JSTestReadOnlyMapLike.h
r270042 r273138 66 66 class JSTestReadOnlyMapLikeOwner final : public JSC::WeakHandleOwner { 67 67 public: 68 bool isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown>, void* context, JSC:: SlotVisitor&, const char**) final;68 bool isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown>, void* context, JSC::AbstractSlotVisitor&, const char**) final; 69 69 void finalize(JSC::Handle<JSC::Unknown>, void* context) final; 70 70 }; -
trunk/Source/WebCore/bindings/scripts/test/JS/JSTestReadOnlySetLike.cpp
r268990 r273138 40 40 #include <JavaScriptCore/JSCInlines.h> 41 41 #include <JavaScriptCore/JSDestructibleObjectHeapCellType.h> 42 #include <JavaScriptCore/SlotVisitorMacros.h> 42 43 #include <JavaScriptCore/SubspaceInlines.h> 43 44 #include <wtf/GetPtr.h> … … 297 298 IGNORE_WARNINGS_BEGIN("unreachable-code") 298 299 IGNORE_WARNINGS_BEGIN("tautological-compare") 299 if (&JSTestReadOnlySetLike::visitOutputConstraints != &JSC::JSCell::visitOutputConstraints) 300 void (*myVisitOutputConstraint)(JSC::JSCell*, JSC::SlotVisitor&) = JSTestReadOnlySetLike::visitOutputConstraints; 301 void (*jsCellVisitOutputConstraint)(JSC::JSCell*, JSC::SlotVisitor&) = JSC::JSCell::visitOutputConstraints; 302 if (myVisitOutputConstraint != jsCellVisitOutputConstraint) 300 303 clientData.outputConstraintSpaces().append(space); 301 304 IGNORE_WARNINGS_END … … 313 316 } 314 317 315 bool JSTestReadOnlySetLikeOwner::isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown> handle, void*, SlotVisitor& visitor, const char** reason)318 bool JSTestReadOnlySetLikeOwner::isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown> handle, void*, AbstractSlotVisitor& visitor, const char** reason) 316 319 { 317 320 UNUSED_PARAM(handle); -
trunk/Source/WebCore/bindings/scripts/test/JS/JSTestReadOnlySetLike.h
r270042 r273138 66 66 class JSTestReadOnlySetLikeOwner final : public JSC::WeakHandleOwner { 67 67 public: 68 bool isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown>, void* context, JSC:: SlotVisitor&, const char**) final;68 bool isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown>, void* context, JSC::AbstractSlotVisitor&, const char**) final; 69 69 void finalize(JSC::Handle<JSC::Unknown>, void* context) final; 70 70 }; -
trunk/Source/WebCore/bindings/scripts/test/JS/JSTestReportExtraMemoryCost.cpp
r268990 r273138 34 34 #include <JavaScriptCore/JSCInlines.h> 35 35 #include <JavaScriptCore/JSDestructibleObjectHeapCellType.h> 36 #include <JavaScriptCore/SlotVisitorMacros.h> 36 37 #include <JavaScriptCore/SubspaceInlines.h> 37 38 #include <wtf/GetPtr.h> … … 174 175 IGNORE_WARNINGS_BEGIN("unreachable-code") 175 176 IGNORE_WARNINGS_BEGIN("tautological-compare") 176 if (&JSTestReportExtraMemoryCost::visitOutputConstraints != &JSC::JSCell::visitOutputConstraints) 177 void (*myVisitOutputConstraint)(JSC::JSCell*, JSC::SlotVisitor&) = JSTestReportExtraMemoryCost::visitOutputConstraints; 178 void (*jsCellVisitOutputConstraint)(JSC::JSCell*, JSC::SlotVisitor&) = JSC::JSCell::visitOutputConstraints; 179 if (myVisitOutputConstraint != jsCellVisitOutputConstraint) 177 180 clientData.outputConstraintSpaces().append(space); 178 181 IGNORE_WARNINGS_END … … 181 184 } 182 185 183 void JSTestReportExtraMemoryCost::visitChildren(JSCell* cell, SlotVisitor& visitor) 186 template<typename Visitor> 187 void JSTestReportExtraMemoryCost::visitChildrenImpl(JSCell* cell, Visitor& visitor) 184 188 { 185 189 auto* thisObject = jsCast<JSTestReportExtraMemoryCost*>(cell); … … 188 192 visitor.reportExtraMemoryVisited(thisObject->wrapped().memoryCost()); 189 193 } 194 195 DEFINE_VISIT_CHILDREN(JSTestReportExtraMemoryCost); 190 196 191 197 size_t JSTestReportExtraMemoryCost::estimatedSize(JSCell* cell, VM& vm) … … 204 210 } 205 211 206 bool JSTestReportExtraMemoryCostOwner::isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown> handle, void*, SlotVisitor& visitor, const char** reason)212 bool JSTestReportExtraMemoryCostOwner::isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown> handle, void*, AbstractSlotVisitor& visitor, const char** reason) 207 213 { 208 214 UNUSED_PARAM(handle); -
trunk/Source/WebCore/bindings/scripts/test/JS/JSTestReportExtraMemoryCost.h
r270042 r273138 58 58 } 59 59 static JSC::IsoSubspace* subspaceForImpl(JSC::VM& vm); 60 static void visitChildren(JSCell*, JSC::SlotVisitor&);60 DECLARE_VISIT_CHILDREN; 61 61 62 62 static void analyzeHeap(JSCell*, JSC::HeapAnalyzer&); … … 69 69 class JSTestReportExtraMemoryCostOwner final : public JSC::WeakHandleOwner { 70 70 public: 71 bool isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown>, void* context, JSC:: SlotVisitor&, const char**) final;71 bool isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown>, void* context, JSC::AbstractSlotVisitor&, const char**) final; 72 72 void finalize(JSC::Handle<JSC::Unknown>, void* context) final; 73 73 }; -
trunk/Source/WebCore/bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp
r268990 r273138 46 46 #include <JavaScriptCore/JSCInlines.h> 47 47 #include <JavaScriptCore/JSDestructibleObjectHeapCellType.h> 48 #include <JavaScriptCore/SlotVisitorMacros.h> 48 49 #include <JavaScriptCore/SubspaceInlines.h> 49 50 #include <wtf/GetPtr.h> … … 362 363 IGNORE_WARNINGS_BEGIN("unreachable-code") 363 364 IGNORE_WARNINGS_BEGIN("tautological-compare") 364 if (&JSTestSerializedScriptValueInterface::visitOutputConstraints != &JSC::JSCell::visitOutputConstraints) 365 void (*myVisitOutputConstraint)(JSC::JSCell*, JSC::SlotVisitor&) = JSTestSerializedScriptValueInterface::visitOutputConstraints; 366 void (*jsCellVisitOutputConstraint)(JSC::JSCell*, JSC::SlotVisitor&) = JSC::JSCell::visitOutputConstraints; 367 if (myVisitOutputConstraint != jsCellVisitOutputConstraint) 365 368 clientData.outputConstraintSpaces().append(space); 366 369 IGNORE_WARNINGS_END … … 369 372 } 370 373 371 void JSTestSerializedScriptValueInterface::visitChildren(JSCell* cell, SlotVisitor& visitor) 374 template<typename Visitor> 375 void JSTestSerializedScriptValueInterface::visitChildrenImpl(JSCell* cell, Visitor& visitor) 372 376 { 373 377 auto* thisObject = jsCast<JSTestSerializedScriptValueInterface*>(cell); … … 378 382 } 379 383 384 DEFINE_VISIT_CHILDREN(JSTestSerializedScriptValueInterface); 385 380 386 void JSTestSerializedScriptValueInterface::analyzeHeap(JSCell* cell, HeapAnalyzer& analyzer) 381 387 { … … 387 393 } 388 394 389 bool JSTestSerializedScriptValueInterfaceOwner::isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown> handle, void*, SlotVisitor& visitor, const char** reason)395 bool JSTestSerializedScriptValueInterfaceOwner::isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown> handle, void*, AbstractSlotVisitor& visitor, const char** reason) 390 396 { 391 397 UNUSED_PARAM(handle); -
trunk/Source/WebCore/bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.h
r270042 r273138 61 61 } 62 62 static JSC::IsoSubspace* subspaceForImpl(JSC::VM& vm); 63 static void visitChildren(JSCell*, JSC::SlotVisitor&);63 DECLARE_VISIT_CHILDREN; 64 64 65 65 static void analyzeHeap(JSCell*, JSC::HeapAnalyzer&); … … 72 72 class JSTestSerializedScriptValueInterfaceOwner final : public JSC::WeakHandleOwner { 73 73 public: 74 bool isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown>, void* context, JSC:: SlotVisitor&, const char**) final;74 bool isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown>, void* context, JSC::AbstractSlotVisitor&, const char**) final; 75 75 void finalize(JSC::Handle<JSC::Unknown>, void* context) final; 76 76 }; -
trunk/Source/WebCore/bindings/scripts/test/JS/JSTestSetLike.cpp
r268990 r273138 40 40 #include <JavaScriptCore/JSCInlines.h> 41 41 #include <JavaScriptCore/JSDestructibleObjectHeapCellType.h> 42 #include <JavaScriptCore/SlotVisitorMacros.h> 42 43 #include <JavaScriptCore/SubspaceInlines.h> 43 44 #include <wtf/GetPtr.h> … … 357 358 IGNORE_WARNINGS_BEGIN("unreachable-code") 358 359 IGNORE_WARNINGS_BEGIN("tautological-compare") 359 if (&JSTestSetLike::visitOutputConstraints != &JSC::JSCell::visitOutputConstraints) 360 void (*myVisitOutputConstraint)(JSC::JSCell*, JSC::SlotVisitor&) = JSTestSetLike::visitOutputConstraints; 361 void (*jsCellVisitOutputConstraint)(JSC::JSCell*, JSC::SlotVisitor&) = JSC::JSCell::visitOutputConstraints; 362 if (myVisitOutputConstraint != jsCellVisitOutputConstraint) 360 363 clientData.outputConstraintSpaces().append(space); 361 364 IGNORE_WARNINGS_END … … 373 376 } 374 377 375 bool JSTestSetLikeOwner::isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown> handle, void*, SlotVisitor& visitor, const char** reason)378 bool JSTestSetLikeOwner::isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown> handle, void*, AbstractSlotVisitor& visitor, const char** reason) 376 379 { 377 380 UNUSED_PARAM(handle); -
trunk/Source/WebCore/bindings/scripts/test/JS/JSTestSetLike.h
r270042 r273138 66 66 class JSTestSetLikeOwner final : public JSC::WeakHandleOwner { 67 67 public: 68 bool isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown>, void* context, JSC:: SlotVisitor&, const char**) final;68 bool isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown>, void* context, JSC::AbstractSlotVisitor&, const char**) final; 69 69 void finalize(JSC::Handle<JSC::Unknown>, void* context) final; 70 70 }; -
trunk/Source/WebCore/bindings/scripts/test/JS/JSTestSetLikeWithOverriddenOperations.cpp
r268990 r273138 41 41 #include <JavaScriptCore/JSCInlines.h> 42 42 #include <JavaScriptCore/JSDestructibleObjectHeapCellType.h> 43 #include <JavaScriptCore/SlotVisitorMacros.h> 43 44 #include <JavaScriptCore/SubspaceInlines.h> 44 45 #include <wtf/GetPtr.h> … … 369 370 IGNORE_WARNINGS_BEGIN("unreachable-code") 370 371 IGNORE_WARNINGS_BEGIN("tautological-compare") 371 if (&JSTestSetLikeWithOverriddenOperations::visitOutputConstraints != &JSC::JSCell::visitOutputConstraints) 372 void (*myVisitOutputConstraint)(JSC::JSCell*, JSC::SlotVisitor&) = JSTestSetLikeWithOverriddenOperations::visitOutputConstraints; 373 void (*jsCellVisitOutputConstraint)(JSC::JSCell*, JSC::SlotVisitor&) = JSC::JSCell::visitOutputConstraints; 374 if (myVisitOutputConstraint != jsCellVisitOutputConstraint) 372 375 clientData.outputConstraintSpaces().append(space); 373 376 IGNORE_WARNINGS_END … … 385 388 } 386 389 387 bool JSTestSetLikeWithOverriddenOperationsOwner::isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown> handle, void*, SlotVisitor& visitor, const char** reason)390 bool JSTestSetLikeWithOverriddenOperationsOwner::isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown> handle, void*, AbstractSlotVisitor& visitor, const char** reason) 388 391 { 389 392 UNUSED_PARAM(handle); -
trunk/Source/WebCore/bindings/scripts/test/JS/JSTestSetLikeWithOverriddenOperations.h
r270042 r273138 66 66 class JSTestSetLikeWithOverriddenOperationsOwner final : public JSC::WeakHandleOwner { 67 67 public: 68 bool isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown>, void* context, JSC:: SlotVisitor&, const char**) final;68 bool isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown>, void* context, JSC::AbstractSlotVisitor&, const char**) final; 69 69 void finalize(JSC::Handle<JSC::Unknown>, void* context) final; 70 70 }; -
trunk/Source/WebCore/bindings/scripts/test/JS/JSTestStringifier.cpp
r268990 r273138 36 36 #include <JavaScriptCore/JSCInlines.h> 37 37 #include <JavaScriptCore/JSDestructibleObjectHeapCellType.h> 38 #include <JavaScriptCore/SlotVisitorMacros.h> 38 39 #include <JavaScriptCore/SubspaceInlines.h> 39 40 #include <wtf/GetPtr.h> … … 200 201 IGNORE_WARNINGS_BEGIN("unreachable-code") 201 202 IGNORE_WARNINGS_BEGIN("tautological-compare") 202 if (&JSTestStringifier::visitOutputConstraints != &JSC::JSCell::visitOutputConstraints) 203 void (*myVisitOutputConstraint)(JSC::JSCell*, JSC::SlotVisitor&) = JSTestStringifier::visitOutputConstraints; 204 void (*jsCellVisitOutputConstraint)(JSC::JSCell*, JSC::SlotVisitor&) = JSC::JSCell::visitOutputConstraints; 205 if (myVisitOutputConstraint != jsCellVisitOutputConstraint) 203 206 clientData.outputConstraintSpaces().append(space); 204 207 IGNORE_WARNINGS_END … … 216 219 } 217 220 218 bool JSTestStringifierOwner::isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown> handle, void*, SlotVisitor& visitor, const char** reason)221 bool JSTestStringifierOwner::isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown> handle, void*, AbstractSlotVisitor& visitor, const char** reason) 219 222 { 220 223 UNUSED_PARAM(handle); -
trunk/Source/WebCore/bindings/scripts/test/JS/JSTestStringifier.h
r270042 r273138 66 66 class JSTestStringifierOwner final : public JSC::WeakHandleOwner { 67 67 public: 68 bool isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown>, void* context, JSC:: SlotVisitor&, const char**) final;68 bool isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown>, void* context, JSC::AbstractSlotVisitor&, const char**) final; 69 69 void finalize(JSC::Handle<JSC::Unknown>, void* context) final; 70 70 }; -
trunk/Source/WebCore/bindings/scripts/test/JS/JSTestStringifierAnonymousOperation.cpp
r268990 r273138 36 36 #include <JavaScriptCore/JSCInlines.h> 37 37 #include <JavaScriptCore/JSDestructibleObjectHeapCellType.h> 38 #include <JavaScriptCore/SlotVisitorMacros.h> 38 39 #include <JavaScriptCore/SubspaceInlines.h> 39 40 #include <wtf/GetPtr.h> … … 200 201 IGNORE_WARNINGS_BEGIN("unreachable-code") 201 202 IGNORE_WARNINGS_BEGIN("tautological-compare") 202 if (&JSTestStringifierAnonymousOperation::visitOutputConstraints != &JSC::JSCell::visitOutputConstraints) 203 void (*myVisitOutputConstraint)(JSC::JSCell*, JSC::SlotVisitor&) = JSTestStringifierAnonymousOperation::visitOutputConstraints; 204 void (*jsCellVisitOutputConstraint)(JSC::JSCell*, JSC::SlotVisitor&) = JSC::JSCell::visitOutputConstraints; 205 if (myVisitOutputConstraint != jsCellVisitOutputConstraint) 203 206 clientData.outputConstraintSpaces().append(space); 204 207 IGNORE_WARNINGS_END … … 216 219 } 217 220 218 bool JSTestStringifierAnonymousOperationOwner::isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown> handle, void*, SlotVisitor& visitor, const char** reason)221 bool JSTestStringifierAnonymousOperationOwner::isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown> handle, void*, AbstractSlotVisitor& visitor, const char** reason) 219 222 { 220 223 UNUSED_PARAM(handle); -
trunk/Source/WebCore/bindings/scripts/test/JS/JSTestStringifierAnonymousOperation.h
r270042 r273138 66 66 class JSTestStringifierAnonymousOperationOwner final : public JSC::WeakHandleOwner { 67 67 public: 68 bool isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown>, void* context, JSC:: SlotVisitor&, const char**) final;68 bool isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown>, void* context, JSC::AbstractSlotVisitor&, const char**) final; 69 69 void finalize(JSC::Handle<JSC::Unknown>, void* context) final; 70 70 }; -
trunk/Source/WebCore/bindings/scripts/test/JS/JSTestStringifierNamedOperation.cpp
r268990 r273138 36 36 #include <JavaScriptCore/JSCInlines.h> 37 37 #include <JavaScriptCore/JSDestructibleObjectHeapCellType.h> 38 #include <JavaScriptCore/SlotVisitorMacros.h> 38 39 #include <JavaScriptCore/SubspaceInlines.h> 39 40 #include <wtf/GetPtr.h> … … 217 218 IGNORE_WARNINGS_BEGIN("unreachable-code") 218 219 IGNORE_WARNINGS_BEGIN("tautological-compare") 219 if (&JSTestStringifierNamedOperation::visitOutputConstraints != &JSC::JSCell::visitOutputConstraints) 220 void (*myVisitOutputConstraint)(JSC::JSCell*, JSC::SlotVisitor&) = JSTestStringifierNamedOperation::visitOutputConstraints; 221 void (*jsCellVisitOutputConstraint)(JSC::JSCell*, JSC::SlotVisitor&) = JSC::JSCell::visitOutputConstraints; 222 if (myVisitOutputConstraint != jsCellVisitOutputConstraint) 220 223 clientData.outputConstraintSpaces().append(space); 221 224 IGNORE_WARNINGS_END … … 233 236 } 234 237 235 bool JSTestStringifierNamedOperationOwner::isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown> handle, void*, SlotVisitor& visitor, const char** reason)238 bool JSTestStringifierNamedOperationOwner::isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown> handle, void*, AbstractSlotVisitor& visitor, const char** reason) 236 239 { 237 240 UNUSED_PARAM(handle); -
trunk/Source/WebCore/bindings/scripts/test/JS/JSTestStringifierNamedOperation.h
r270042 r273138 66 66 class JSTestStringifierNamedOperationOwner final : public JSC::WeakHandleOwner { 67 67 public: 68 bool isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown>, void* context, JSC:: SlotVisitor&, const char**) final;68 bool isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown>, void* context, JSC::AbstractSlotVisitor&, const char**) final; 69 69 void finalize(JSC::Handle<JSC::Unknown>, void* context) final; 70 70 }; -
trunk/Source/WebCore/bindings/scripts/test/JS/JSTestStringifierOperationImplementedAs.cpp
r268990 r273138 36 36 #include <JavaScriptCore/JSCInlines.h> 37 37 #include <JavaScriptCore/JSDestructibleObjectHeapCellType.h> 38 #include <JavaScriptCore/SlotVisitorMacros.h> 38 39 #include <JavaScriptCore/SubspaceInlines.h> 39 40 #include <wtf/GetPtr.h> … … 217 218 IGNORE_WARNINGS_BEGIN("unreachable-code") 218 219 IGNORE_WARNINGS_BEGIN("tautological-compare") 219 if (&JSTestStringifierOperationImplementedAs::visitOutputConstraints != &JSC::JSCell::visitOutputConstraints) 220 void (*myVisitOutputConstraint)(JSC::JSCell*, JSC::SlotVisitor&) = JSTestStringifierOperationImplementedAs::visitOutputConstraints; 221 void (*jsCellVisitOutputConstraint)(JSC::JSCell*, JSC::SlotVisitor&) = JSC::JSCell::visitOutputConstraints; 222 if (myVisitOutputConstraint != jsCellVisitOutputConstraint) 220 223 clientData.outputConstraintSpaces().append(space); 221 224 IGNORE_WARNINGS_END … … 233 236 } 234 237 235 bool JSTestStringifierOperationImplementedAsOwner::isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown> handle, void*, SlotVisitor& visitor, const char** reason)238 bool JSTestStringifierOperationImplementedAsOwner::isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown> handle, void*, AbstractSlotVisitor& visitor, const char** reason) 236 239 { 237 240 UNUSED_PARAM(handle); -
trunk/Source/WebCore/bindings/scripts/test/JS/JSTestStringifierOperationImplementedAs.h
r270042 r273138 66 66 class JSTestStringifierOperationImplementedAsOwner final : public JSC::WeakHandleOwner { 67 67 public: 68 bool isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown>, void* context, JSC:: SlotVisitor&, const char**) final;68 bool isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown>, void* context, JSC::AbstractSlotVisitor&, const char**) final; 69 69 void finalize(JSC::Handle<JSC::Unknown>, void* context) final; 70 70 }; -
trunk/Source/WebCore/bindings/scripts/test/JS/JSTestStringifierOperationNamedToString.cpp
r268990 r273138 36 36 #include <JavaScriptCore/JSCInlines.h> 37 37 #include <JavaScriptCore/JSDestructibleObjectHeapCellType.h> 38 #include <JavaScriptCore/SlotVisitorMacros.h> 38 39 #include <JavaScriptCore/SubspaceInlines.h> 39 40 #include <wtf/GetPtr.h> … … 200 201 IGNORE_WARNINGS_BEGIN("unreachable-code") 201 202 IGNORE_WARNINGS_BEGIN("tautological-compare") 202 if (&JSTestStringifierOperationNamedToString::visitOutputConstraints != &JSC::JSCell::visitOutputConstraints) 203 void (*myVisitOutputConstraint)(JSC::JSCell*, JSC::SlotVisitor&) = JSTestStringifierOperationNamedToString::visitOutputConstraints; 204 void (*jsCellVisitOutputConstraint)(JSC::JSCell*, JSC::SlotVisitor&) = JSC::JSCell::visitOutputConstraints; 205 if (myVisitOutputConstraint != jsCellVisitOutputConstraint) 203 206 clientData.outputConstraintSpaces().append(space); 204 207 IGNORE_WARNINGS_END … … 216 219 } 217 220 218 bool JSTestStringifierOperationNamedToStringOwner::isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown> handle, void*, SlotVisitor& visitor, const char** reason)221 bool JSTestStringifierOperationNamedToStringOwner::isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown> handle, void*, AbstractSlotVisitor& visitor, const char** reason) 219 222 { 220 223 UNUSED_PARAM(handle); -
trunk/Source/WebCore/bindings/scripts/test/JS/JSTestStringifierOperationNamedToString.h
r270042 r273138 66 66 class JSTestStringifierOperationNamedToStringOwner final : public JSC::WeakHandleOwner { 67 67 public: 68 bool isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown>, void* context, JSC:: SlotVisitor&, const char**) final;68 bool isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown>, void* context, JSC::AbstractSlotVisitor&, const char**) final; 69 69 void finalize(JSC::Handle<JSC::Unknown>, void* context) final; 70 70 }; -
trunk/Source/WebCore/bindings/scripts/test/JS/JSTestStringifierReadOnlyAttribute.cpp
r268990 r273138 37 37 #include <JavaScriptCore/JSCInlines.h> 38 38 #include <JavaScriptCore/JSDestructibleObjectHeapCellType.h> 39 #include <JavaScriptCore/SlotVisitorMacros.h> 39 40 #include <JavaScriptCore/SubspaceInlines.h> 40 41 #include <wtf/GetPtr.h> … … 221 222 IGNORE_WARNINGS_BEGIN("unreachable-code") 222 223 IGNORE_WARNINGS_BEGIN("tautological-compare") 223 if (&JSTestStringifierReadOnlyAttribute::visitOutputConstraints != &JSC::JSCell::visitOutputConstraints) 224 void (*myVisitOutputConstraint)(JSC::JSCell*, JSC::SlotVisitor&) = JSTestStringifierReadOnlyAttribute::visitOutputConstraints; 225 void (*jsCellVisitOutputConstraint)(JSC::JSCell*, JSC::SlotVisitor&) = JSC::JSCell::visitOutputConstraints; 226 if (myVisitOutputConstraint != jsCellVisitOutputConstraint) 224 227 clientData.outputConstraintSpaces().append(space); 225 228 IGNORE_WARNINGS_END … … 237 240 } 238 241 239 bool JSTestStringifierReadOnlyAttributeOwner::isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown> handle, void*, SlotVisitor& visitor, const char** reason)242 bool JSTestStringifierReadOnlyAttributeOwner::isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown> handle, void*, AbstractSlotVisitor& visitor, const char** reason) 240 243 { 241 244 UNUSED_PARAM(handle); -
trunk/Source/WebCore/bindings/scripts/test/JS/JSTestStringifierReadOnlyAttribute.h
r270042 r273138 66 66 class JSTestStringifierReadOnlyAttributeOwner final : public JSC::WeakHandleOwner { 67 67 public: 68 bool isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown>, void* context, JSC:: SlotVisitor&, const char**) final;68 bool isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown>, void* context, JSC::AbstractSlotVisitor&, const char**) final; 69 69 void finalize(JSC::Handle<JSC::Unknown>, void* context) final; 70 70 }; -
trunk/Source/WebCore/bindings/scripts/test/JS/JSTestStringifierReadWriteAttribute.cpp
r268990 r273138 37 37 #include <JavaScriptCore/JSCInlines.h> 38 38 #include <JavaScriptCore/JSDestructibleObjectHeapCellType.h> 39 #include <JavaScriptCore/SlotVisitorMacros.h> 39 40 #include <JavaScriptCore/SubspaceInlines.h> 40 41 #include <wtf/GetPtr.h> … … 240 241 IGNORE_WARNINGS_BEGIN("unreachable-code") 241 242 IGNORE_WARNINGS_BEGIN("tautological-compare") 242 if (&JSTestStringifierReadWriteAttribute::visitOutputConstraints != &JSC::JSCell::visitOutputConstraints) 243 void (*myVisitOutputConstraint)(JSC::JSCell*, JSC::SlotVisitor&) = JSTestStringifierReadWriteAttribute::visitOutputConstraints; 244 void (*jsCellVisitOutputConstraint)(JSC::JSCell*, JSC::SlotVisitor&) = JSC::JSCell::visitOutputConstraints; 245 if (myVisitOutputConstraint != jsCellVisitOutputConstraint) 243 246 clientData.outputConstraintSpaces().append(space); 244 247 IGNORE_WARNINGS_END … … 256 259 } 257 260 258 bool JSTestStringifierReadWriteAttributeOwner::isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown> handle, void*, SlotVisitor& visitor, const char** reason)261 bool JSTestStringifierReadWriteAttributeOwner::isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown> handle, void*, AbstractSlotVisitor& visitor, const char** reason) 259 262 { 260 263 UNUSED_PARAM(handle); -
trunk/Source/WebCore/bindings/scripts/test/JS/JSTestStringifierReadWriteAttribute.h
r270042 r273138 66 66 class JSTestStringifierReadWriteAttributeOwner final : public JSC::WeakHandleOwner { 67 67 public: 68 bool isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown>, void* context, JSC:: SlotVisitor&, const char**) final;68 bool isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown>, void* context, JSC::AbstractSlotVisitor&, const char**) final; 69 69 void finalize(JSC::Handle<JSC::Unknown>, void* context) final; 70 70 }; -
trunk/Source/WebCore/bindings/scripts/test/JS/JSTestTypedefs.cpp
r268990 r273138 54 54 #include <JavaScriptCore/JSCInlines.h> 55 55 #include <JavaScriptCore/JSDestructibleObjectHeapCellType.h> 56 #include <JavaScriptCore/SlotVisitorMacros.h> 56 57 #include <JavaScriptCore/SubspaceInlines.h> 57 58 #include <wtf/GetPtr.h> … … 826 827 IGNORE_WARNINGS_BEGIN("unreachable-code") 827 828 IGNORE_WARNINGS_BEGIN("tautological-compare") 828 if (&JSTestTypedefs::visitOutputConstraints != &JSC::JSCell::visitOutputConstraints) 829 void (*myVisitOutputConstraint)(JSC::JSCell*, JSC::SlotVisitor&) = JSTestTypedefs::visitOutputConstraints; 830 void (*jsCellVisitOutputConstraint)(JSC::JSCell*, JSC::SlotVisitor&) = JSC::JSCell::visitOutputConstraints; 831 if (myVisitOutputConstraint != jsCellVisitOutputConstraint) 829 832 clientData.outputConstraintSpaces().append(space); 830 833 IGNORE_WARNINGS_END … … 842 845 } 843 846 844 bool JSTestTypedefsOwner::isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown> handle, void*, SlotVisitor& visitor, const char** reason)847 bool JSTestTypedefsOwner::isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown> handle, void*, AbstractSlotVisitor& visitor, const char** reason) 845 848 { 846 849 UNUSED_PARAM(handle); -
trunk/Source/WebCore/bindings/scripts/test/JS/JSTestTypedefs.h
r270042 r273138 68 68 class JSTestTypedefsOwner final : public JSC::WeakHandleOwner { 69 69 public: 70 bool isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown>, void* context, JSC:: SlotVisitor&, const char**) final;70 bool isReachableFromOpaqueRoots(JSC::Handle<JSC::Unknown>, void* context, JSC::AbstractSlotVisitor&, const char**) final; 71 71 void finalize(JSC::Handle<JSC::Unknown>, void* context) final; 72 72 }; -
trunk/Source/WebCore/bindings/scripts/test/JS/JSWorkerGlobalScope.cpp
r268990 r273138 41 41 #include <JavaScriptCore/JSCInlines.h> 42 42 #include <JavaScriptCore/JSDestructibleObjectHeapCellType.h> 43 #include <JavaScriptCore/SlotVisitorMacros.h> 43 44 #include <JavaScriptCore/SubspaceInlines.h> 44 45 #include <wtf/GetPtr.h> … … 333 334 IGNORE_WARNINGS_BEGIN("unreachable-code") 334 335 IGNORE_WARNINGS_BEGIN("tautological-compare") 335 if (&JSWorkerGlobalScope::visitOutputConstraints != &JSC::JSCell::visitOutputConstraints) 336 void (*myVisitOutputConstraint)(JSC::JSCell*, JSC::SlotVisitor&) = JSWorkerGlobalScope::visitOutputConstraints; 337 void (*jsCellVisitOutputConstraint)(JSC::JSCell*, JSC::SlotVisitor&) = JSC::JSCell::visitOutputConstraints; 338 if (myVisitOutputConstraint != jsCellVisitOutputConstraint) 336 339 clientData.outputConstraintSpaces().append(space); 337 340 IGNORE_WARNINGS_END -
trunk/Source/WebCore/bindings/scripts/test/JS/JSWorkletGlobalScope.cpp
r268990 r273138 36 36 #include <JavaScriptCore/JSCInlines.h> 37 37 #include <JavaScriptCore/JSDestructibleObjectHeapCellType.h> 38 #include <JavaScriptCore/SlotVisitorMacros.h> 38 39 #include <JavaScriptCore/SubspaceInlines.h> 39 40 #include <wtf/GetPtr.h> … … 182 183 IGNORE_WARNINGS_BEGIN("unreachable-code") 183 184 IGNORE_WARNINGS_BEGIN("tautological-compare") 184 if (&JSWorkletGlobalScope::visitOutputConstraints != &JSC::JSCell::visitOutputConstraints) 185 void (*myVisitOutputConstraint)(JSC::JSCell*, JSC::SlotVisitor&) = JSWorkletGlobalScope::visitOutputConstraints; 186 void (*jsCellVisitOutputConstraint)(JSC::JSCell*, JSC::SlotVisitor&) = JSC::JSCell::visitOutputConstraints; 187 if (myVisitOutputConstraint != jsCellVisitOutputConstraint) 185 188 clientData.outputConstraintSpaces().append(space); 186 189 IGNORE_WARNINGS_END -
trunk/Source/WebCore/dom/ActiveDOMCallback.h
r270067 r273138 1 1 /* 2 2 * Copyright (C) 2010, 2012 Google Inc. All rights reserved. 3 * Copyright (C) 2021 Apple Inc. All rights reserved. 3 4 * 4 5 * Redistribution and use in source and binary forms, with or without … … 34 35 35 36 namespace JSC { 37 class AbstractSlotVisitor; 36 38 class SlotVisitor; 37 39 } … … 56 58 WEBCORE_EXPORT bool activeDOMObjectAreStopped() const; 57 59 60 virtual void visitJSFunction(JSC::AbstractSlotVisitor&) { } 58 61 virtual void visitJSFunction(JSC::SlotVisitor&) { } 59 62 }; -
trunk/Source/WebCore/dom/EventListener.h
r271806 r273138 1 1 /* 2 * Copyright (C) 2006 , 2008, 2009Apple Inc. All rights reserved.2 * Copyright (C) 2006-2021 Apple Inc. All rights reserved. 3 3 * 4 4 * This library is free software; you can redistribute it and/or … … 25 25 26 26 namespace JSC { 27 class AbstractSlotVisitor; 27 28 class JSObject; 28 29 class SlotVisitor; … … 53 54 virtual bool wasCreatedFromMarkup() const { return false; } 54 55 56 virtual void visitJSFunction(JSC::AbstractSlotVisitor&) { } 55 57 virtual void visitJSFunction(JSC::SlotVisitor&) { } 56 58 -
trunk/Source/WebCore/dom/EventTarget.cpp
r271806 r273138 3 3 * (C) 1999 Antti Koivisto (koivisto@kde.org) 4 4 * (C) 2001 Dirk Mueller (mueller@kde.org) 5 * Copyright (C) 2004-20 17Apple Inc. All rights reserved.5 * Copyright (C) 2004-2021 Apple Inc. All rights reserved. 6 6 * Copyright (C) 2006 Alexey Proskuryakov (ap@webkit.org) 7 7 * (C) 2007, 2008 Nikolas Zimmermann <zimmermann@kde.org> … … 385 385 } 386 386 387 void EventTarget::visitJSEventListeners(JSC::SlotVisitor& visitor) 387 template<typename Visitor> 388 void EventTarget::visitJSEventListeners(Visitor& visitor) 388 389 { 389 390 EventTargetData* data = eventTargetDataConcurrently(); … … 396 397 listener->visitJSFunction(visitor); 397 398 } 399 400 template void EventTarget::visitJSEventListeners(JSC::AbstractSlotVisitor&); 401 template void EventTarget::visitJSEventListeners(JSC::SlotVisitor&); 398 402 399 403 void EventTarget::invalidateEventListenerRegions() -
trunk/Source/WebCore/dom/EventTarget.h
r271806 r273138 3 3 * (C) 1999 Antti Koivisto (koivisto@kde.org) 4 4 * (C) 2001 Dirk Mueller (mueller@kde.org) 5 * Copyright (C) 2004-20 17Apple Inc. All rights reserved.5 * Copyright (C) 2004-2021 Apple Inc. All rights reserved. 6 6 * Copyright (C) 2006 Alexey Proskuryakov (ap@webkit.org) 7 7 * (C) 2007, 2008 Nikolas Zimmermann <zimmermann@kde.org> … … 98 98 bool isFiringEventListeners() const; 99 99 100 void visitJSEventListeners(JSC::SlotVisitor&);100 template<typename Visitor> void visitJSEventListeners(Visitor&); 101 101 void invalidateJSEventListeners(JSC::JSObject*); 102 102 -
trunk/Source/WebCore/dom/MutationRecord.cpp
r261013 r273138 1 1 /* 2 2 * Copyright (C) 2011 Google Inc. All rights reserved. 3 * Copyright (C) 2021 Apple Inc. All rights reserved. 3 4 * 4 5 * Redistribution and use in source and binary forms, with or without … … 42 43 namespace { 43 44 44 static void visitNodeList(JSC:: SlotVisitor& visitor, NodeList& nodeList)45 static void visitNodeList(JSC::AbstractSlotVisitor& visitor, NodeList& nodeList) 45 46 { 46 47 ASSERT(!nodeList.isLiveNodeList()); … … 69 70 Node* nextSibling() override { return m_nextSibling.get(); } 70 71 71 void visitNodesConcurrently(JSC:: SlotVisitor& visitor) const final72 void visitNodesConcurrently(JSC::AbstractSlotVisitor& visitor) const final 72 73 { 73 74 visitor.addOpaqueRoot(root(m_target.ptr())); … … 106 107 } 107 108 108 void visitNodesConcurrently(JSC:: SlotVisitor& visitor) const final109 void visitNodesConcurrently(JSC::AbstractSlotVisitor& visitor) const final 109 110 { 110 111 visitor.addOpaqueRoot(root(m_target.ptr())); … … 165 166 String oldValue() override { return String(); } 166 167 167 void visitNodesConcurrently(JSC:: SlotVisitor& visitor) const final168 void visitNodesConcurrently(JSC::AbstractSlotVisitor& visitor) const final 168 169 { 169 170 m_record->visitNodesConcurrently(visitor); -
trunk/Source/WebCore/dom/MutationRecord.h
r246490 r273138 1 1 /* 2 2 * Copyright (C) 2011 Google Inc. All rights reserved. 3 * Copyright (C) 2021 Apple Inc. All rights reserved. 3 4 * 4 5 * Redistribution and use in source and binary forms, with or without … … 37 38 namespace JSC { 38 39 39 class SlotVisitor;40 class AbstractSlotVisitor; 40 41 41 42 } … … 73 74 virtual String oldValue() { return String(); } 74 75 75 virtual void visitNodesConcurrently(JSC:: SlotVisitor&) const = 0;76 virtual void visitNodesConcurrently(JSC::AbstractSlotVisitor&) const = 0; 76 77 }; 77 78 -
trunk/Source/WebCore/dom/NodeFilterCondition.h
r223728 r273138 39 39 virtual ~NodeFilterCondition() = default; 40 40 virtual unsigned short acceptNode(Node&) const = 0; 41 virtual void visitAggregate(JSC::SlotVisitor&) { }42 41 }; 43 42 -
trunk/Source/WebCore/dom/StaticRange.cpp
r272114 r273138 1 1 /* 2 * Copyright (C) 2016-202 0Apple Inc. All rights reserved.2 * Copyright (C) 2016-2021 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 77 77 } 78 78 79 void StaticRange::visitNodesConcurrently(JSC:: SlotVisitor& visitor) const79 void StaticRange::visitNodesConcurrently(JSC::AbstractSlotVisitor& visitor) const 80 80 { 81 81 visitor.addOpaqueRoot(root(start.container.get())); -
trunk/Source/WebCore/dom/StaticRange.h
r272114 r273138 1 1 /* 2 * Copyright (C) 2016-202 0Apple Inc. All rights reserved.2 * Copyright (C) 2016-2021 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 31 31 namespace JSC { 32 32 33 class SlotVisitor;33 class AbstractSlotVisitor; 34 34 35 35 } … … 59 59 bool collapsed() const final { return SimpleRange::collapsed(); } 60 60 61 void visitNodesConcurrently(JSC:: SlotVisitor&) const;61 void visitNodesConcurrently(JSC::AbstractSlotVisitor&) const; 62 62 63 63 private: -
trunk/Source/WebCore/html/canvas/WebGL2RenderingContext.cpp
r271679 r273138 1 1 /* 2 * Copyright (C) 2015-202 0Apple Inc. All rights reserved.2 * Copyright (C) 2015-2021 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 3079 3079 } 3080 3080 3081 void WebGL2RenderingContext::addMembersToOpaqueRoots(JSC:: SlotVisitor& visitor)3081 void WebGL2RenderingContext::addMembersToOpaqueRoots(JSC::AbstractSlotVisitor& visitor) 3082 3082 { 3083 3083 WebGLRenderingContextBase::addMembersToOpaqueRoots(visitor); -
trunk/Source/WebCore/html/canvas/WebGL2RenderingContext.h
r270185 r273138 1 1 /* 2 * Copyright (C) 2015-20 17Apple Inc. All rights reserved.2 * Copyright (C) 2015-2021 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 262 262 bool checkAndTranslateAttachments(const char* functionName, GCGLenum, Vector<GCGLenum>&); 263 263 264 void addMembersToOpaqueRoots(JSC:: SlotVisitor&) override;264 void addMembersToOpaqueRoots(JSC::AbstractSlotVisitor&) override; 265 265 266 266 private: -
trunk/Source/WebCore/html/canvas/WebGLFramebuffer.cpp
r270185 r273138 1 1 /* 2 * Copyright (C) 2009-20 17Apple Inc. All rights reserved.2 * Copyright (C) 2009-2021 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 64 64 void attach(GraphicsContextGL*, GCGLenum target, GCGLenum attachment) override; 65 65 void unattach(GraphicsContextGL*, GCGLenum target, GCGLenum attachment) override; 66 void addMembersToOpaqueRoots(const AbstractLocker&, JSC:: SlotVisitor&) override;66 void addMembersToOpaqueRoots(const AbstractLocker&, JSC::AbstractSlotVisitor&) override; 67 67 68 68 WebGLRenderbufferAttachment() { }; … … 146 146 } 147 147 148 void WebGLRenderbufferAttachment::addMembersToOpaqueRoots(const AbstractLocker&, JSC:: SlotVisitor& visitor)148 void WebGLRenderbufferAttachment::addMembersToOpaqueRoots(const AbstractLocker&, JSC::AbstractSlotVisitor& visitor) 149 149 { 150 150 visitor.addOpaqueRoot(m_renderbuffer.get()); … … 170 170 void attach(GraphicsContextGL*, GCGLenum target, GCGLenum attachment) override; 171 171 void unattach(GraphicsContextGL*, GCGLenum target, GCGLenum attachment) override; 172 void addMembersToOpaqueRoots(const AbstractLocker&, JSC:: SlotVisitor&) override;172 void addMembersToOpaqueRoots(const AbstractLocker&, JSC::AbstractSlotVisitor&) override; 173 173 174 174 WebGLTextureAttachment() { }; … … 268 268 } 269 269 270 void WebGLTextureAttachment::addMembersToOpaqueRoots(const AbstractLocker&, JSC:: SlotVisitor& visitor)270 void WebGLTextureAttachment::addMembersToOpaqueRoots(const AbstractLocker&, JSC::AbstractSlotVisitor& visitor) 271 271 { 272 272 visitor.addOpaqueRoot(m_texture.get()); … … 722 722 } 723 723 724 void WebGLFramebuffer::addMembersToOpaqueRoots(const AbstractLocker& locker, JSC:: SlotVisitor& visitor)724 void WebGLFramebuffer::addMembersToOpaqueRoots(const AbstractLocker& locker, JSC::AbstractSlotVisitor& visitor) 725 725 { 726 726 for (auto& entry : m_attachments) -
trunk/Source/WebCore/html/canvas/WebGLFramebuffer.h
r269850 r273138 1 1 /* 2 * Copyright (C) 2009 Apple Inc. All rights reserved.2 * Copyright (C) 2009-2021 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 35 35 36 36 namespace JSC { 37 class SlotVisitor;37 class AbstractSlotVisitor; 38 38 } 39 39 … … 66 66 virtual void attach(GraphicsContextGL*, GCGLenum target, GCGLenum attachment) = 0; 67 67 virtual void unattach(GraphicsContextGL*, GCGLenum target, GCGLenum attachment) = 0; 68 virtual void addMembersToOpaqueRoots(const WTF::AbstractLocker&, JSC:: SlotVisitor&) = 0;68 virtual void addMembersToOpaqueRoots(const WTF::AbstractLocker&, JSC::AbstractSlotVisitor&) = 0; 69 69 70 70 protected: … … 115 115 GCGLenum getDrawBuffer(GCGLenum); 116 116 117 void addMembersToOpaqueRoots(const WTF::AbstractLocker&, JSC:: SlotVisitor&);117 void addMembersToOpaqueRoots(const WTF::AbstractLocker&, JSC::AbstractSlotVisitor&); 118 118 119 119 private: -
trunk/Source/WebCore/html/canvas/WebGLProgram.cpp
r269952 r273138 1 1 /* 2 * Copyright (C) 2009 Apple Inc. All rights reserved.2 * Copyright (C) 2009-2021 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 207 207 } 208 208 209 void WebGLProgram::addMembersToOpaqueRoots(const AbstractLocker&, JSC:: SlotVisitor& visitor)209 void WebGLProgram::addMembersToOpaqueRoots(const AbstractLocker&, JSC::AbstractSlotVisitor& visitor) 210 210 { 211 211 visitor.addOpaqueRoot(m_vertexShader.get()); -
trunk/Source/WebCore/html/canvas/WebGLProgram.h
r269850 r273138 1 1 /* 2 * Copyright (C) 2009-20 17Apple Inc. All rights reserved.2 * Copyright (C) 2009-2021 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 36 36 37 37 namespace JSC { 38 class SlotVisitor;38 class AbstractSlotVisitor; 39 39 } 40 40 … … 89 89 } 90 90 91 void addMembersToOpaqueRoots(const WTF::AbstractLocker&, JSC:: SlotVisitor&);91 void addMembersToOpaqueRoots(const WTF::AbstractLocker&, JSC::AbstractSlotVisitor&); 92 92 93 93 private: -
trunk/Source/WebCore/html/canvas/WebGLRenderingContextBase.cpp
r273080 r273138 1 1 /* 2 * Copyright (C) 2015-20 17Apple Inc. All rights reserved.2 * Copyright (C) 2015-2021 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 7932 7932 } 7933 7933 7934 void WebGLRenderingContextBase::addMembersToOpaqueRoots(JSC:: SlotVisitor& visitor)7934 void WebGLRenderingContextBase::addMembersToOpaqueRoots(JSC::AbstractSlotVisitor& visitor) 7935 7935 { 7936 7936 auto locker = holdLock(objectGraphLock()); -
trunk/Source/WebCore/html/canvas/WebGLRenderingContextBase.h
r271679 r273138 1 1 /* 2 * Copyright (C) 2015-20 17Apple Inc. All rights reserved.2 * Copyright (C) 2015-2021 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 59 59 60 60 namespace JSC { 61 class SlotVisitor;61 class AbstractSlotVisitor; 62 62 } 63 63 … … 412 412 void dispatchContextChangedNotification() override; 413 413 414 virtual void addMembersToOpaqueRoots(JSC:: SlotVisitor&);414 virtual void addMembersToOpaqueRoots(JSC::AbstractSlotVisitor&); 415 415 // This lock must be held across all mutations of containers like 416 416 // Vectors, HashSets, etc. which contain RefPtr<WebGLObject>, and -
trunk/Source/WebCore/html/canvas/WebGLTransformFeedback.cpp
r270160 r273138 1 1 /* 2 * Copyright (C) 2015 Apple Inc. All rights reserved.2 * Copyright (C) 2015-2021 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 31 31 #include "WebGLContextGroup.h" 32 32 #include "WebGLRenderingContextBase.h" 33 #include <JavaScriptCore/SlotVisitor.h> 34 #include <JavaScriptCore/SlotVisitorInlines.h> 33 #include <JavaScriptCore/AbstractSlotVisitorInlines.h> 35 34 #include <wtf/Lock.h> 36 35 #include <wtf/Locker.h> … … 94 93 } 95 94 96 void WebGLTransformFeedback::addMembersToOpaqueRoots(const AbstractLocker& locker, JSC:: SlotVisitor& visitor)95 void WebGLTransformFeedback::addMembersToOpaqueRoots(const AbstractLocker& locker, JSC::AbstractSlotVisitor& visitor) 97 96 { 98 97 for (auto& buffer : m_boundIndexedTransformFeedbackBuffers) -
trunk/Source/WebCore/html/canvas/WebGLTransformFeedback.h
r269850 r273138 1 1 /* 2 * Copyright (C) 2015-20 17Apple Inc. All rights reserved.2 * Copyright (C) 2015-2021 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 32 32 33 33 namespace JSC { 34 class SlotVisitor;34 class AbstractSlotVisitor; 35 35 } 36 36 … … 71 71 bool hasEnoughBuffers(GCGLuint numRequired) const; 72 72 73 void addMembersToOpaqueRoots(const AbstractLocker&, JSC:: SlotVisitor&);73 void addMembersToOpaqueRoots(const AbstractLocker&, JSC::AbstractSlotVisitor&); 74 74 75 75 private: -
trunk/Source/WebCore/html/canvas/WebGLVertexArrayObjectBase.cpp
r271444 r273138 1 1 /* 2 * Copyright (C) 2015-20 17Apple Inc. All rights reserved.2 * Copyright (C) 2015-2021 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 30 30 31 31 #include "WebGLRenderingContextBase.h" 32 #include <JavaScriptCore/SlotVisitor.h> 33 #include <JavaScriptCore/SlotVisitorInlines.h> 32 #include <JavaScriptCore/AbstractSlotVisitorInlines.h> 34 33 #include <wtf/Locker.h> 35 34 … … 110 109 } 111 110 112 void WebGLVertexArrayObjectBase::addMembersToOpaqueRoots(const AbstractLocker&, JSC:: SlotVisitor& visitor)111 void WebGLVertexArrayObjectBase::addMembersToOpaqueRoots(const AbstractLocker&, JSC::AbstractSlotVisitor& visitor) 113 112 { 114 113 visitor.addOpaqueRoot(m_boundElementArrayBuffer.get()); -
trunk/Source/WebCore/html/canvas/WebGLVertexArrayObjectBase.h
r271444 r273138 1 1 /* 2 * Copyright (C) 2015-20 17Apple Inc. All rights reserved.2 * Copyright (C) 2015-2021 Apple Inc. All rights reserved. 3 3 * 4 4 * Redistribution and use in source and binary forms, with or without … … 33 33 34 34 namespace JSC { 35 class SlotVisitor;35 class AbstractSlotVisitor; 36 36 } 37 37 … … 78 78 void setVertexAttribDivisor(GCGLuint index, GCGLuint divisor); 79 79 80 void addMembersToOpaqueRoots(const WTF::AbstractLocker&, JSC:: SlotVisitor&);80 void addMembersToOpaqueRoots(const WTF::AbstractLocker&, JSC::AbstractSlotVisitor&); 81 81 82 82 protected:
Note: See TracChangeset
for help on using the changeset viewer.