source: webkit/trunk/Source/JavaScriptCore/dfg/DFGValidate.cpp

Last change on this file was 292929, checked in by [email protected], 3 years ago

[JSC] Remove VM& parameter from structure related code including jsDyamicCast
https://bugs.webkit.org/show_bug.cgi?id=239362

Reviewed by Darin Adler.

As structure lookup no longer requires VM&, we can remove bunch of VM& parameter from various methods: classInfo, structure, methodTable etc.
And it leads to removing VM& from jsDynamicCast. This is important since this makes it possible to incorporate the underlying mechanism of
WebCore downcast + jsDynamicCast. I like keeping jsDynamicCast name since it is clear that this is JSCell, but we can (1) unify the underlying
implementations and (2) add static_assert(std::base_v<T, JSCell>) in jsDynamicCast so that we can keep jsDynamicCast interface.
It also has a chance to avoid unnecessary load of VM& in various places.

We still keep JSXXX::toWrapped's VM& parameter since it is possible that we need VM& for querying wrapped one. Once we are confident that we no
longer need it even in the future, we will remove that too in a separate patch.

We also rename Structure::classInfo to Structure::classInfoForCells, and hiding Structure::classInfo function since JSCell::classInfo and
Structure::classInfoForCellsare different.

  • Tools/DumpRenderTree/TestRunner.cpp:

(setAudioResultCallback):
(TestRunner::setOpenPanelFilesMediaIcon):

  • Source/JavaScriptCore/API/APICallbackFunction.h:

(JSC::APICallbackFunction::constructImpl):

  • Source/JavaScriptCore/API/APICast.h:

(toJS):
(toJSForGC):

  • Source/JavaScriptCore/API/JSAPIGlobalObject.mm:

(JSC::JSAPIGlobalObject::moduleLoaderResolve):

  • Source/JavaScriptCore/API/JSCallbackConstructor.cpp:

(JSC::JSCallbackConstructor::finishCreation):

  • Source/JavaScriptCore/API/JSCallbackFunction.cpp:

(JSC::JSCallbackFunction::finishCreation):

  • Source/JavaScriptCore/API/JSCallbackObjectFunctions.h:

(JSC::JSCallbackObject<Parent>::asCallbackObject):
(JSC::JSCallbackObject<Parent>::finishCreation):
(JSC::JSCallbackObject<Parent>::init):
(JSC::JSCallbackObject<Parent>::getOwnPropertySlot):
(JSC::JSCallbackObject<Parent>::getOwnPropertySlotByIndex):
(JSC::JSCallbackObject<Parent>::customToPrimitive):
(JSC::JSCallbackObject<Parent>::staticFunctionGetterImpl):

  • Source/JavaScriptCore/API/JSContext.mm:

(-[JSContext evaluateJSScript:]):

  • Source/JavaScriptCore/API/JSContextRef.cpp:

(JSContextGetGlobalObject):
(JSGlobalContextSetUnhandledRejectionCallback):

  • Source/JavaScriptCore/API/JSObjectRef.cpp:

(JSObjectGetPrototype):
(JSObjectSetProperty):
(JSObjectSetPropertyForKey):
(JSObjectSetPropertyAtIndex):
(classInfoPrivate):
(JSObjectGetPrivate):
(JSObjectSetPrivate):
(JSObjectGetPrivateProperty):
(JSObjectSetPrivateProperty):
(JSObjectDeletePrivateProperty):
(JSObjectIsFunction):
(JSObjectCallAsFunction):
(JSObjectIsConstructor):
(JSObjectCallAsConstructor):
(JSObjectGetProxyTarget):

  • Source/JavaScriptCore/API/JSTypedArray.cpp:

(JSValueGetTypedArrayType):
(JSObjectMakeTypedArrayWithArrayBuffer):
(JSObjectMakeTypedArrayWithArrayBufferAndOffset):
(JSObjectGetTypedArrayBytesPtr):
(JSObjectGetTypedArrayLength):
(JSObjectGetTypedArrayByteLength):
(JSObjectGetTypedArrayByteOffset):
(JSObjectGetTypedArrayBuffer):
(JSObjectGetArrayBufferBytesPtr):
(JSObjectGetArrayBufferByteLength):

  • Source/JavaScriptCore/API/JSValue.mm:

(isDate):
(isArray):
(valueToObjectWithoutCopy):

  • Source/JavaScriptCore/API/JSValueRef.cpp:

(JSValueIsArray):
(JSValueIsDate):
(JSValueIsObjectOfClass):
(JSValueIsInstanceOfConstructor):

  • Source/JavaScriptCore/API/JSWeakObjectMapRefPrivate.cpp:
  • Source/JavaScriptCore/API/JSWrapperMap.mm:

(putNonEnumerable):
(copyMethodsToObject):
(tryUnwrapObjcObject):

  • Source/JavaScriptCore/API/ObjCCallbackFunction.h:
  • Source/JavaScriptCore/API/ObjCCallbackFunction.mm:

(tryUnwrapConstructor):

  • Source/JavaScriptCore/API/glib/JSCClass.cpp:

(isWrappedObject):

  • Source/JavaScriptCore/API/glib/JSCValue.cpp:

(jsc_value_object_define_property_data):
(jscValueObjectDefinePropertyAccessor):
(jsc_value_is_array_buffer):
(jsc_value_typed_array_get_type):

  • Source/JavaScriptCore/API/glib/JSCWrapperMap.cpp:

(JSC::WrapperMap::wrappedObject const):

  • Source/JavaScriptCore/API/tests/JSWrapperMapTests.mm:

(+[JSWrapperMapTests testStructureIdentity]):

  • Source/JavaScriptCore/bindings/ScriptFunctionCall.cpp:

(Deprecated::ScriptFunctionCall::call):

  • Source/JavaScriptCore/bindings/ScriptValue.cpp:

(Inspector::jsToInspectorValue):

  • Source/JavaScriptCore/bytecode/AccessCase.cpp:

(JSC::AccessCase::fromStructureStubInfo):
(JSC::AccessCase::generateImpl):

  • Source/JavaScriptCore/bytecode/AdaptiveInferredPropertyValueWatchpointBase.cpp:

(JSC::AdaptiveInferredPropertyValueWatchpointBase::install):

  • Source/JavaScriptCore/bytecode/ArrayProfile.cpp:

(JSC::ArrayProfile::observeIndexedRead):

  • Source/JavaScriptCore/bytecode/ArrayProfile.h:
  • Source/JavaScriptCore/bytecode/CallLinkStatus.cpp:

(JSC::CallLinkStatus::filter):

  • Source/JavaScriptCore/bytecode/CallLinkStatus.h:
  • Source/JavaScriptCore/bytecode/CallVariant.cpp:

(JSC::CallVariant::filter):

  • Source/JavaScriptCore/bytecode/CallVariant.h:

(JSC::CallVariant::internalFunction const):
(JSC::CallVariant::function const):
(JSC::CallVariant::isClosureCall const):
(JSC::CallVariant::executable const):
(JSC::CallVariant::functionExecutable const):
(JSC::CallVariant::nativeExecutable const):

  • Source/JavaScriptCore/bytecode/CodeBlock.cpp:

(JSC::CodeBlock::CodeBlock):
(JSC::CodeBlock::finishCreation):
(JSC::CodeBlock::isConstantOwnedByUnlinkedCodeBlock const):
(JSC::CodeBlock::setConstantRegisters):
(JSC::CodeBlock::determineLiveness):
(JSC::CodeBlock::replacement):
(JSC::CodeBlock::computeCapabilityLevel):
(JSC::CodeBlock::nameForRegister):

  • Source/JavaScriptCore/bytecode/GetByStatus.cpp:

(JSC::GetByStatus::computeForStubInfoWithoutExitSiteFeedback):

  • Source/JavaScriptCore/bytecode/InByStatus.cpp:

(JSC::InByStatus::computeForStubInfoWithoutExitSiteFeedback):

  • Source/JavaScriptCore/bytecode/LLIntPrototypeLoadAdaptiveStructureWatchpoint.cpp:

(JSC::LLIntPrototypeLoadAdaptiveStructureWatchpoint::install):

  • Source/JavaScriptCore/bytecode/ObjectAllocationProfileInlines.h:

(JSC::ObjectAllocationProfileBase<Derived>::possibleDefaultPropertyCount):

  • Source/JavaScriptCore/bytecode/ObjectPropertyCondition.cpp:

(JSC::ObjectPropertyCondition::attemptToMakeEquivalenceWithoutBarrier const):

  • Source/JavaScriptCore/bytecode/ObjectPropertyCondition.h:

(JSC::ObjectPropertyCondition::isValidValueForPresence const):

  • Source/JavaScriptCore/bytecode/ObjectPropertyConditionSet.cpp:

(JSC::generateConditionsForPrototypePropertyHitCustom):
(JSC::generateConditionsForInstanceOf):
(JSC::prepareChainForCaching):

  • Source/JavaScriptCore/bytecode/PolyProtoAccessChain.cpp:

(JSC::PolyProtoAccessChain::tryCreate):

  • Source/JavaScriptCore/bytecode/PropertyCondition.cpp:

(JSC::PropertyCondition::isValidValueForAttributes):
(JSC::PropertyCondition::isValidValueForPresence const):
(JSC::PropertyCondition::attemptToMakeEquivalenceWithoutBarrier const):

  • Source/JavaScriptCore/bytecode/PropertyCondition.h:
  • Source/JavaScriptCore/bytecode/PutByStatus.cpp:

(JSC::PutByStatus::computeForStubInfo):

  • Source/JavaScriptCore/bytecode/Repatch.cpp:

(JSC::jsToWasmICCodePtr):
(JSC::actionForCell):
(JSC::tryCacheGetBy):
(JSC::tryCacheArrayGetByVal):
(JSC::tryCachePutBy):
(JSC::tryCacheArrayPutByVal):
(JSC::repatchDeleteBy):
(JSC::tryCacheInBy):
(JSC::repatchInBy):
(JSC::tryCacheHasPrivateBrand):
(JSC::tryCacheCheckPrivateBrand):
(JSC::tryCacheInstanceOf):
(JSC::linkPolymorphicCall):

  • Source/JavaScriptCore/bytecode/Repatch.h:
  • Source/JavaScriptCore/bytecode/RepatchInlines.h:

(JSC::handleHostCall):
(JSC::linkFor):
(JSC::virtualForWithFunction):

  • Source/JavaScriptCore/bytecode/StructureStubClearingWatchpoint.cpp:

(JSC::StructureTransitionStructureStubClearingWatchpoint::fireInternal):

  • Source/JavaScriptCore/bytecode/StructureStubInfo.cpp:

(JSC::StructureStubInfo::visitWeakReferences):
(JSC::StructureStubInfo::propagateTransitions):

  • Source/JavaScriptCore/bytecode/StructureStubInfo.h:

(JSC::StructureStubInfo::inlineAccessBaseStructure):

  • Source/JavaScriptCore/debugger/Debugger.cpp:

(JSC::Debugger::attach):
(JSC::Debugger::exception):

  • Source/JavaScriptCore/debugger/DebuggerCallFrame.cpp:

(JSC::DebuggerCallFrame::functionName const):
(JSC::DebuggerCallFrame::scope):
(JSC::DebuggerCallFrame::type const):

  • Source/JavaScriptCore/debugger/DebuggerScope.cpp:

(JSC::DebuggerScope::create):
(JSC::DebuggerScope::put):
(JSC::DebuggerScope::deleteProperty):
(JSC::DebuggerScope::defineOwnProperty):
(JSC::DebuggerScope::name const):
(JSC::DebuggerScope::location const):

  • Source/JavaScriptCore/dfg/DFGAbstractInterpreterInlines.h:

(JSC::DFG::isToThisAnIdentity):
(JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects):
(JSC::DFG::AbstractInterpreter<AbstractStateType>::filterICStatus):

  • Source/JavaScriptCore/dfg/DFGAbstractValue.cpp:

(JSC::DFG::AbstractValue::mergeOSREntryValue):

  • Source/JavaScriptCore/dfg/DFGAdaptiveStructureWatchpoint.cpp:

(JSC::DFG::AdaptiveStructureWatchpoint::install):

  • Source/JavaScriptCore/dfg/DFGArgumentsEliminationPhase.cpp:
  • Source/JavaScriptCore/dfg/DFGArrayMode.cpp:

(JSC::DFG::ArrayMode::refine const):

  • Source/JavaScriptCore/dfg/DFGByteCodeParser.cpp:

(JSC::DFG::ByteCodeParser::get):
(JSC::DFG::ByteCodeParser::handleIntrinsicCall):
(JSC::DFG::ByteCodeParser::handleTypedArrayConstructor):
(JSC::DFG::ByteCodeParser::handleConstantInternalFunction):
(JSC::DFG::ByteCodeParser::check):
(JSC::DFG::ByteCodeParser::planLoad):
(JSC::DFG::ByteCodeParser::checkPresenceForReplace):
(JSC::DFG::ByteCodeParser::load):
(JSC::DFG::ByteCodeParser::parseBlock):
(JSC::DFG::ByteCodeParser::handlePutByVal):
(JSC::DFG::ByteCodeParser::handleCreateInternalFieldObject):

  • Source/JavaScriptCore/dfg/DFGConstantFoldingPhase.cpp:

(JSC::DFG::ConstantFoldingPhase::foldConstants):
(JSC::DFG::ConstantFoldingPhase::addStructureTransitionCheck):
(JSC::DFG::ConstantFoldingPhase::tryFoldAsPutByOffset):

  • Source/JavaScriptCore/dfg/DFGDesiredWeakReferences.cpp:

(JSC::DFG::DesiredWeakReferences::reallyAdd):

  • Source/JavaScriptCore/dfg/DFGFixupPhase.cpp:

(JSC::DFG::FixupPhase::fixupNode):
(JSC::DFG::FixupPhase::fixupMakeRope):
(JSC::DFG::FixupPhase::setSaneChainIfPossible):

  • Source/JavaScriptCore/dfg/DFGFrozenValue.h:

(JSC::DFG::FrozenValue::FrozenValue):
(JSC::DFG::FrozenValue::dynamicCast):

  • Source/JavaScriptCore/dfg/DFGGraph.cpp:

(JSC::DFG::Graph::dump):
(JSC::DFG::Graph::tryGetConstantProperty):
(JSC::DFG::Graph::tryGetConstantClosureVar):
(JSC::DFG::Graph::tryGetFoldableView):
(JSC::DFG::Graph::freeze):
(JSC::DFG::Graph::getRegExpPrototypeProperty):
(JSC::DFG::Graph::isStringPrototypeMethodSane):
(JSC::DFG::Graph::canOptimizeStringObjectAccess):

  • Source/JavaScriptCore/dfg/DFGGraph.h:
  • Source/JavaScriptCore/dfg/DFGLazyJSValue.cpp:

(JSC::DFG::LazyJSValue::tryGetStringImpl const):
(JSC::DFG::LazyJSValue::tryGetString const):

  • Source/JavaScriptCore/dfg/DFGLazyJSValue.h:
  • Source/JavaScriptCore/dfg/DFGNode.h:

(JSC::DFG::Node::dynamicCastConstant):

  • Source/JavaScriptCore/dfg/DFGOperations.cpp:

(JSC::DFG::putByVal):
(JSC::DFG::getByValObject):
(JSC::DFG::JSC_DEFINE_JIT_OPERATION):
(JSC::DFG::defineDataProperty):
(JSC::DFG::defineAccessorProperty):
(JSC::DFG::putDynamicVar):

  • Source/JavaScriptCore/dfg/DFGSafeToExecute.h:

(JSC::DFG::safeToExecute):

  • Source/JavaScriptCore/dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::compileGetByValOnString):

  • Source/JavaScriptCore/dfg/DFGSpeculativeJIT32_64.cpp:

(JSC::DFG::SpeculativeJIT::emitCall):

  • Source/JavaScriptCore/dfg/DFGSpeculativeJIT64.cpp:

(JSC::DFG::SpeculativeJIT::emitCall):

  • Source/JavaScriptCore/dfg/DFGStrengthReductionPhase.cpp:

(JSC::DFG::StrengthReductionPhase::handleNode):

  • Source/JavaScriptCore/ftl/FTLLowerDFGToB3.cpp:

(JSC::FTL::DFG::LowerDFGToB3::compileMakeRope):
(JSC::FTL::DFG::LowerDFGToB3::compileStringCharAtImpl):
(JSC::FTL::DFG::LowerDFGToB3::compileCompareStrictEq):

  • Source/JavaScriptCore/ftl/FTLOperations.cpp:

(JSC::FTL::JSC_DEFINE_JIT_OPERATION):

  • Source/JavaScriptCore/heap/GCAssertions.h:
  • Source/JavaScriptCore/heap/Heap.cpp:

(JSC::GatherExtraHeapData::GatherExtraHeapData):
(JSC::GatherExtraHeapData::operator() const):
(JSC::Heap::gatherExtraHeapData):
(JSC::Heap::protectedObjectTypeCounts):
(JSC::Heap::objectTypeCounts):
(JSC::Heap::addCoreConstraints):

  • Source/JavaScriptCore/heap/HeapCellType.cpp:

(JSC::DefaultDestroyFunc::operator() const):

  • Source/JavaScriptCore/heap/HeapSnapshotBuilder.cpp:

(JSC::HeapSnapshotBuilder::descriptionForCell const):
(JSC::HeapSnapshotBuilder::json):

  • Source/JavaScriptCore/heap/SlotVisitor.cpp:

(JSC::validate):
(JSC::SlotVisitor::visitChildren):

  • Source/JavaScriptCore/heap/VerifierSlotVisitor.cpp:

(JSC::VerifierSlotVisitor::visitChildren):

  • Source/JavaScriptCore/inspector/InjectedScriptManager.cpp:

(Inspector::InjectedScriptManager::createInjectedScript):

  • Source/JavaScriptCore/inspector/JSInjectedScriptHost.cpp:

(Inspector::JSInjectedScriptHost::finishCreation):
(Inspector::JSInjectedScriptHost::isPromiseRejectedWithNativeGetterTypeError):
(Inspector::JSInjectedScriptHost::subtype):
(Inspector::JSInjectedScriptHost::functionDetails):
(Inspector::JSInjectedScriptHost::getInternalProperties):
(Inspector::JSInjectedScriptHost::proxyTargetValue):
(Inspector::JSInjectedScriptHost::weakMapSize):
(Inspector::JSInjectedScriptHost::weakMapEntries):
(Inspector::JSInjectedScriptHost::weakSetSize):
(Inspector::JSInjectedScriptHost::weakSetEntries):
(Inspector::JSInjectedScriptHost::iteratorEntries):
(Inspector::JSInjectedScriptHost::queryInstances):

  • Source/JavaScriptCore/inspector/JSInjectedScriptHost.h:
  • Source/JavaScriptCore/inspector/JSInjectedScriptHostPrototype.cpp:

(Inspector::JSInjectedScriptHostPrototype::finishCreation):
(Inspector::JSC_DEFINE_HOST_FUNCTION):

  • Source/JavaScriptCore/inspector/JSJavaScriptCallFrame.cpp:

(Inspector::JSJavaScriptCallFrame::finishCreation):
(Inspector::JSJavaScriptCallFrame::caller const):
(Inspector::JSJavaScriptCallFrame::scopeChain const):

  • Source/JavaScriptCore/inspector/JSJavaScriptCallFramePrototype.cpp:

(Inspector::JSJavaScriptCallFramePrototype::finishCreation):
(Inspector::JSC_DEFINE_HOST_FUNCTION):

  • Source/JavaScriptCore/inspector/ScriptArguments.cpp:

(Inspector::ScriptArguments::getArgumentAtIndexAsString const):

  • Source/JavaScriptCore/inspector/ScriptCallStackFactory.cpp:

(Inspector::extractSourceInformationFromException):

  • Source/JavaScriptCore/inspector/agents/InspectorHeapAgent.cpp:

(Inspector::InspectorHeapAgent::snapshot):
(Inspector::InspectorHeapAgent::getPreview):
(Inspector::InspectorHeapAgent::getRemoteObject):

  • Source/JavaScriptCore/interpreter/CachedCall.h:

(JSC::CachedCall::CachedCall):

  • Source/JavaScriptCore/interpreter/CallFrame.cpp:

(JSC::CallFrame::convertToStackOverflowFrame):

  • Source/JavaScriptCore/interpreter/Interpreter.cpp:

(JSC::UnwindFunctor::UnwindFunctor):
(JSC::UnwindFunctor::operator() const):
(JSC::UnwindFunctor::notifyDebuggerOfUnwinding):
(JSC::sanitizeRemoteFunctionException):
(JSC::Interpreter::executeProgram):
(JSC::Interpreter::executeCall):
(JSC::Interpreter::executeConstruct):
(JSC::Interpreter::execute):
(JSC::Interpreter::executeModuleProgram):

  • Source/JavaScriptCore/interpreter/ShadowChicken.cpp:

(JSC::ShadowChicken::Packet::dump const):
(JSC::ShadowChicken::Frame::dump const):
(JSC::ShadowChicken::update):

  • Source/JavaScriptCore/interpreter/StackVisitor.cpp:

(JSC::StackVisitor::Frame::calleeSaveRegistersForUnwinding):

  • Source/JavaScriptCore/jit/JITOperations.cpp:

(JSC::getWrappedValue):
(JSC::JSC_DEFINE_JIT_OPERATION):
(JSC::setPrivateField):
(JSC::definePrivateField):
(JSC::putByVal):
(JSC::putByValOptimize):
(JSC::directPutByValOptimize):
(JSC::putPrivateNameOptimize):
(JSC::newFunctionCommon):
(JSC::getByVal):
(JSC::deleteById):
(JSC::deleteByVal):

  • Source/JavaScriptCore/jsc.cpp:

(JSC_DEFINE_CUSTOM_SETTER):
(JSC_DEFINE_HOST_FUNCTION):
(checkException):
(runJSC):

  • Source/JavaScriptCore/llint/LLIntSlowPaths.cpp:

(JSC::LLInt::LLINT_SLOW_PATH_DECL):
(JSC::LLInt::setupGetByIdPrototypeCache):
(JSC::LLInt::performLLIntGetByID):
(JSC::LLInt::getByVal):
(JSC::LLInt::handleHostCall):
(JSC::LLInt::setUpCall):
(JSC::LLInt::llint_throw_stack_overflow_error):

  • Source/JavaScriptCore/runtime/AbstractModuleRecord.cpp:

(JSC::AbstractModuleRecord::finishCreation):
(JSC::AbstractModuleRecord::link):
(JSC::AbstractModuleRecord::evaluate):

  • Source/JavaScriptCore/runtime/AggregateErrorConstructor.cpp:

(JSC::AggregateErrorConstructor::finishCreation):

  • Source/JavaScriptCore/runtime/AggregateErrorPrototype.cpp:

(JSC::AggregateErrorPrototype::finishCreation):

  • Source/JavaScriptCore/runtime/ArrayBuffer.cpp:

(JSC::ArrayBuffer::notifyDetaching):

  • Source/JavaScriptCore/runtime/ArrayConstructor.cpp:

(JSC::JSC_DEFINE_HOST_FUNCTION):

  • Source/JavaScriptCore/runtime/ArrayIteratorPrototype.cpp:

(JSC::ArrayIteratorPrototype::finishCreation):

  • Source/JavaScriptCore/runtime/ArrayPrototype.cpp:

(JSC::ArrayPrototype::finishCreation):
(JSC::setLength):
(JSC::speciesWatchpointIsValid):
(JSC::holesMustForwardToPrototype):
(JSC::fastJoin):
(JSC::canUseDefaultArrayJoinForToString):
(JSC::JSC_DEFINE_HOST_FUNCTION):
(JSC::toLocaleString):
(JSC::fastIndexOf):
(JSC::moveElements):

  • Source/JavaScriptCore/runtime/AsyncFromSyncIteratorPrototype.cpp:

(JSC::AsyncFromSyncIteratorPrototype::finishCreation):

  • Source/JavaScriptCore/runtime/AsyncFunctionPrototype.cpp:

(JSC::AsyncFunctionPrototype::finishCreation):

  • Source/JavaScriptCore/runtime/AsyncGeneratorFunctionPrototype.cpp:

(JSC::AsyncGeneratorFunctionPrototype::finishCreation):

  • Source/JavaScriptCore/runtime/AsyncGeneratorPrototype.cpp:

(JSC::AsyncGeneratorPrototype::finishCreation):

  • Source/JavaScriptCore/runtime/AsyncIteratorPrototype.cpp:

(JSC::AsyncIteratorPrototype::finishCreation):

  • Source/JavaScriptCore/runtime/AtomicsObject.cpp:

(JSC::AtomicsObject::finishCreation):

  • Source/JavaScriptCore/runtime/BatchedTransitionOptimizer.h:

(JSC::BatchedTransitionOptimizer::BatchedTransitionOptimizer):

  • Source/JavaScriptCore/runtime/BigIntConstructor.cpp:

(JSC::BigIntConstructor::finishCreation):

  • Source/JavaScriptCore/runtime/BigIntObject.cpp:

(JSC::BigIntObject::finishCreation):

  • Source/JavaScriptCore/runtime/BigIntPrototype.cpp:

(JSC::BigIntPrototype::finishCreation):
(JSC::toThisBigIntValue):

  • Source/JavaScriptCore/runtime/BooleanObject.cpp:

(JSC::BooleanObject::finishCreation):

  • Source/JavaScriptCore/runtime/BooleanPrototype.cpp:

(JSC::BooleanPrototype::finishCreation):
(JSC::JSC_DEFINE_HOST_FUNCTION):

  • Source/JavaScriptCore/runtime/CachedSpecialPropertyAdaptiveStructureWatchpoint.cpp:

(JSC::CachedSpecialPropertyAdaptiveStructureWatchpoint::install):

  • Source/JavaScriptCore/runtime/CachedTypes.cpp:

(JSC::CachedJSValue::encode):
(JSC::encodeCodeBlock):

  • Source/JavaScriptCore/runtime/CallData.cpp:

(JSC::call):

  • Source/JavaScriptCore/runtime/CellSize.h:

(JSC::cellSize):

  • Source/JavaScriptCore/runtime/ClonedArguments.cpp:

(JSC::ClonedArguments::createEmpty):
(JSC::ClonedArguments::createWithInlineFrame):
(JSC::ClonedArguments::createWithMachineFrame):
(JSC::ClonedArguments::createByCopyingFrom):
(JSC::ClonedArguments::getOwnPropertySlot):
(JSC::ClonedArguments::materializeSpecials):

  • Source/JavaScriptCore/runtime/CodeCache.cpp:

(JSC::CodeCacheMap::pruneSlowCase):
(JSC::CodeCache::write):
(JSC::writeCodeBlock):

  • Source/JavaScriptCore/runtime/CodeCache.h:
  • Source/JavaScriptCore/runtime/CommonSlowPaths.cpp:

(JSC::JSC_DEFINE_COMMON_SLOW_PATH):
(JSC::createInternalFieldObject):
(JSC::iteratorNextTryFastImpl):

  • Source/JavaScriptCore/runtime/CommonSlowPaths.h:

(JSC::CommonSlowPaths::opInByVal):
(JSC::CommonSlowPaths::originalStructureBeforePut):
(JSC::CommonSlowPaths::putDirectWithReify):
(JSC::CommonSlowPaths::putDirectAccessorWithReify):

  • Source/JavaScriptCore/runtime/CommonSlowPathsInlines.h:

(JSC::CommonSlowPaths::tryCachePutToScopeGlobal):
(JSC::CommonSlowPaths::tryCacheGetFromScopeGlobal):

  • Source/JavaScriptCore/runtime/ConsoleObject.cpp:

(JSC::ConsoleObject::finishCreation):

  • Source/JavaScriptCore/runtime/ConstructData.cpp:

(JSC::construct):

  • Source/JavaScriptCore/runtime/DateConstructor.cpp:

(JSC::constructDate):

  • Source/JavaScriptCore/runtime/DateInstance.cpp:

(JSC::DateInstance::finishCreation):

  • Source/JavaScriptCore/runtime/DatePrototype.cpp:

(JSC::formateDateInstance):
(JSC::DatePrototype::finishCreation):
(JSC::JSC_DEFINE_HOST_FUNCTION):
(JSC::setNewValueFromTimeArgs):
(JSC::setNewValueFromDateArgs):

  • Source/JavaScriptCore/runtime/DeferredWorkTimer.cpp:

(JSC::DeferredWorkTimer::doWork):

  • Source/JavaScriptCore/runtime/DirectArguments.h:
  • Source/JavaScriptCore/runtime/Error.cpp:

(JSC::getStackTrace):
(JSC::addErrorInfo):

  • Source/JavaScriptCore/runtime/ErrorInstance.cpp:

(JSC::ErrorInstance::finishCreation):
(JSC::ErrorInstance::sanitizedNameString):

  • Source/JavaScriptCore/runtime/ErrorPrototype.cpp:

(JSC::ErrorPrototypeBase::finishCreation):

  • Source/JavaScriptCore/runtime/ExceptionHelpers.cpp:

(JSC::errorDescriptionForValue):
(JSC::createError):
(JSC::createInvalidFunctionApplyParameterError):

  • Source/JavaScriptCore/runtime/FinalizationRegistryConstructor.cpp:

(JSC::JSC_DEFINE_HOST_FUNCTION):

  • Source/JavaScriptCore/runtime/FinalizationRegistryPrototype.cpp:

(JSC::FinalizationRegistryPrototype::finishCreation):
(JSC::getFinalizationRegistry):
(JSC::JSC_DEFINE_HOST_FUNCTION):

  • Source/JavaScriptCore/runtime/FunctionPrototype.cpp:

(JSC::FunctionPrototype::finishCreation):
(JSC::JSC_DEFINE_HOST_FUNCTION):
(JSC::JSC_DEFINE_CUSTOM_GETTER):
(JSC::RetrieveCallerFunctionFunctor::operator() const):
(JSC::JSC_DEFINE_CUSTOM_SETTER):

  • Source/JavaScriptCore/runtime/GeneratorFunctionPrototype.cpp:

(JSC::GeneratorFunctionPrototype::finishCreation):

  • Source/JavaScriptCore/runtime/GeneratorPrototype.cpp:

(JSC::GeneratorPrototype::finishCreation):

  • Source/JavaScriptCore/runtime/GenericArgumentsInlines.h:

(JSC::GenericArguments<Type>::getOwnPropertySlot):

  • Source/JavaScriptCore/runtime/GetterSetter.cpp:

(JSC::GetterSetter::callGetter):
(JSC::GetterSetter::callSetter):

  • Source/JavaScriptCore/runtime/GetterSetter.h:
  • Source/JavaScriptCore/runtime/HasOwnPropertyCache.h:

(JSC::HasOwnPropertyCache::tryAdd):

  • Source/JavaScriptCore/runtime/InternalFunction.cpp:

(JSC::InternalFunction::InternalFunction):
(JSC::InternalFunction::createSubclassStructure):
(JSC::getFunctionRealm):

  • Source/JavaScriptCore/runtime/IntlCollator.cpp:

(JSC::IntlCollator::finishCreation):

  • Source/JavaScriptCore/runtime/IntlCollatorPrototype.cpp:

(JSC::IntlCollatorPrototype::finishCreation):
(JSC::JSC_DEFINE_CUSTOM_GETTER):
(JSC::JSC_DEFINE_HOST_FUNCTION):

  • Source/JavaScriptCore/runtime/IntlDateTimeFormat.cpp:

(JSC::IntlDateTimeFormat::finishCreation):

  • Source/JavaScriptCore/runtime/IntlDateTimeFormatPrototype.cpp:

(JSC::IntlDateTimeFormatPrototype::finishCreation):
(JSC::IntlDateTimeFormat::handleDateTimeValue):
(JSC::JSC_DEFINE_CUSTOM_GETTER):
(JSC::JSC_DEFINE_HOST_FUNCTION):

  • Source/JavaScriptCore/runtime/IntlDisplayNames.cpp:

(JSC::IntlDisplayNames::finishCreation):

  • Source/JavaScriptCore/runtime/IntlDisplayNamesPrototype.cpp:

(JSC::IntlDisplayNamesPrototype::finishCreation):
(JSC::JSC_DEFINE_HOST_FUNCTION):

  • Source/JavaScriptCore/runtime/IntlListFormat.cpp:

(JSC::IntlListFormat::finishCreation):

  • Source/JavaScriptCore/runtime/IntlListFormatPrototype.cpp:

(JSC::IntlListFormatPrototype::finishCreation):
(JSC::JSC_DEFINE_HOST_FUNCTION):

  • Source/JavaScriptCore/runtime/IntlLocale.cpp:

(JSC::IntlLocale::finishCreation):
(JSC::IntlLocale::initializeLocale):

  • Source/JavaScriptCore/runtime/IntlLocalePrototype.cpp:

(JSC::IntlLocalePrototype::finishCreation):
(JSC::JSC_DEFINE_HOST_FUNCTION):
(JSC::JSC_DEFINE_CUSTOM_GETTER):

  • Source/JavaScriptCore/runtime/IntlNumberFormat.cpp:

(JSC::IntlNumberFormat::finishCreation):

  • Source/JavaScriptCore/runtime/IntlNumberFormatPrototype.cpp:

(JSC::IntlNumberFormatPrototype::finishCreation):
(JSC::JSC_DEFINE_CUSTOM_GETTER):
(JSC::JSC_DEFINE_HOST_FUNCTION):

  • Source/JavaScriptCore/runtime/IntlObject.cpp:

(JSC::createCollatorConstructor):
(JSC::createDateTimeFormatConstructor):
(JSC::createDisplayNamesConstructor):
(JSC::createListFormatConstructor):
(JSC::createLocaleConstructor):
(JSC::createNumberFormatConstructor):
(JSC::createPluralRulesConstructor):
(JSC::createRelativeTimeFormatConstructor):
(JSC::createSegmenterConstructor):
(JSC::IntlObject::finishCreation):
(JSC::canonicalizeLocaleList):

  • Source/JavaScriptCore/runtime/IntlObjectInlines.h:

(JSC::constructIntlInstanceWithWorkaroundForLegacyIntlConstructor):
(JSC::unwrapForLegacyIntlConstructor):

  • Source/JavaScriptCore/runtime/IntlPluralRules.cpp:

(JSC::IntlPluralRules::finishCreation):

  • Source/JavaScriptCore/runtime/IntlPluralRulesPrototype.cpp:

(JSC::IntlPluralRulesPrototype::finishCreation):
(JSC::JSC_DEFINE_HOST_FUNCTION):

  • Source/JavaScriptCore/runtime/IntlRelativeTimeFormat.cpp:

(JSC::IntlRelativeTimeFormat::finishCreation):

  • Source/JavaScriptCore/runtime/IntlRelativeTimeFormatPrototype.cpp:

(JSC::IntlRelativeTimeFormatPrototype::finishCreation):
(JSC::JSC_DEFINE_HOST_FUNCTION):

  • Source/JavaScriptCore/runtime/IntlSegmentIterator.cpp:

(JSC::IntlSegmentIterator::finishCreation):

  • Source/JavaScriptCore/runtime/IntlSegmentIteratorPrototype.cpp:

(JSC::IntlSegmentIteratorPrototype::finishCreation):
(JSC::JSC_DEFINE_HOST_FUNCTION):

  • Source/JavaScriptCore/runtime/IntlSegmenter.cpp:

(JSC::IntlSegmenter::finishCreation):

  • Source/JavaScriptCore/runtime/IntlSegmenterPrototype.cpp:

(JSC::IntlSegmenterPrototype::finishCreation):
(JSC::JSC_DEFINE_HOST_FUNCTION):

  • Source/JavaScriptCore/runtime/IntlSegments.cpp:

(JSC::IntlSegments::finishCreation):

  • Source/JavaScriptCore/runtime/IntlSegmentsPrototype.cpp:

(JSC::IntlSegmentsPrototype::finishCreation):
(JSC::JSC_DEFINE_HOST_FUNCTION):

  • Source/JavaScriptCore/runtime/IteratorOperations.cpp:

(JSC::iteratorNext):
(JSC::iteratorClose):
(JSC::iteratorForIterable):
(JSC::getIterationMode):

  • Source/JavaScriptCore/runtime/IteratorPrototype.cpp:

(JSC::IteratorPrototype::finishCreation):

  • Source/JavaScriptCore/runtime/JSArray.cpp:

(JSC::JSArray::eagerlyInitializeButterfly):
(JSC::JSArray::unshiftCountSlowCase):
(JSC::JSArray::appendMemcpy):
(JSC::JSArray::fastSlice):
(JSC::JSArray::shiftCountWithArrayStorage):
(JSC::JSArray::shiftCountWithAnyIndexingType):
(JSC::JSArray::unshiftCountWithArrayStorage):
(JSC::JSArray::isIteratorProtocolFastAndNonObservable):

  • Source/JavaScriptCore/runtime/JSArray.h:

(JSC::JSArray::finishCreation):
(JSC::asArray):
(JSC::isJSArray):

  • Source/JavaScriptCore/runtime/JSArrayBuffer.h:

(JSC::toPossiblySharedArrayBuffer):

  • Source/JavaScriptCore/runtime/JSArrayBufferConstructor.cpp:

(JSC::JSC_DEFINE_HOST_FUNCTION):

  • Source/JavaScriptCore/runtime/JSArrayBufferPrototype.cpp:

(JSC::arrayBufferSpeciesConstructorSlow):
(JSC::arrayBufferSlice):
(JSC::arrayBufferByteLength):

  • Source/JavaScriptCore/runtime/JSArrayBufferPrototypeInlines.h:

(JSC::speciesWatchpointIsValid):
(JSC::arrayBufferSpeciesConstructor):

  • Source/JavaScriptCore/runtime/JSArrayBufferView.cpp:

(JSC::JSArrayBufferView::finishCreation):
(JSC::JSArrayBufferView::unsharedJSBuffer):
(JSC::JSArrayBufferView::possiblySharedJSBuffer):
(JSC::JSArrayBufferView::slowDownAndWasteMemory):
(JSC::validateTypedArray):

  • Source/JavaScriptCore/runtime/JSArrayBufferViewInlines.h:

(JSC::JSArrayBufferView::toWrapped):
(JSC::JSArrayBufferView::toWrappedAllowShared):

  • Source/JavaScriptCore/runtime/JSArrayInlines.h:

(JSC::JSArray::canFastCopy):
(JSC::JSArray::canDoFastIndexedAccess):
(JSC::JSArray::pushInline):

  • Source/JavaScriptCore/runtime/JSAsyncFunction.cpp:

(JSC::JSAsyncFunction::createImpl):
(JSC::JSAsyncFunction::create):
(JSC::JSAsyncFunction::createWithInvalidatedReallocationWatchpoint):

  • Source/JavaScriptCore/runtime/JSAsyncGeneratorFunction.cpp:

(JSC::JSAsyncGeneratorFunction::createImpl):
(JSC::JSAsyncGeneratorFunction::create):
(JSC::JSAsyncGeneratorFunction::createWithInvalidatedReallocationWatchpoint):

  • Source/JavaScriptCore/runtime/JSBoundFunction.cpp:

(JSC::JSC_DEFINE_HOST_FUNCTION):
(JSC::getBoundFunctionStructure):
(JSC::JSBoundFunction::create):
(JSC::JSBoundFunction::finishCreation):

  • Source/JavaScriptCore/runtime/JSCJSValue.cpp:

(JSC::JSValue::putToPrimitive):
(JSC::JSValue::dumpForBacktrace const):
(JSC::JSValue::toWTFStringForConsole const):

  • Source/JavaScriptCore/runtime/JSCJSValue.h:
  • Source/JavaScriptCore/runtime/JSCJSValueInlines.h:

(JSC::JSValue::isCallable const):
(JSC::JSValue::isCallableWithConcurrency const):
(JSC::JSValue::isConstructor const):
(JSC::JSValue::isConstructorWithConcurrency const):
(JSC::JSValue::inherits const):
(JSC::JSValue::classInfoOrNull const):
(JSC::JSValue::toThis const):
(JSC::JSValue::put):
(JSC::JSValue::putByIndex):
(JSC::JSValue::structureOrNull const):
(JSC::JSValue::equalSlowCaseInline):

  • Source/JavaScriptCore/runtime/JSCallee.cpp:

(JSC::JSCallee::finishCreation):

  • Source/JavaScriptCore/runtime/JSCast.h:

(JSC::jsCast):
(JSC::JSCastingHelpers::FinalTypeDispatcher::inheritsGeneric):
(JSC::JSCastingHelpers::inheritsJSTypeImpl):
(JSC::JSCastingHelpers::InheritsTraits::inherits):
(JSC::JSCastingHelpers::inherits):
(JSC::jsDynamicCast):
(JSC::jsSecureCast):

  • Source/JavaScriptCore/runtime/JSCell.cpp:

(JSC::JSCell::dump const):
(JSC::JSCell::dumpToStream):
(JSC::JSCell::estimatedSizeInBytes const):
(JSC::JSCell::put):
(JSC::JSCell::putByIndex):
(JSC::JSCell::deleteProperty):
(JSC::JSCell::deletePropertyByIndex):
(JSC::JSCell::className const):

  • Source/JavaScriptCore/runtime/JSCell.h:
  • Source/JavaScriptCore/runtime/JSCellInlines.h:

(JSC::JSCell::visitChildrenImpl):
(JSC::JSCell::isCallableWithConcurrency):
(JSC::JSCell::isConstructorWithConcurrency):
(JSC::JSCell::isCallable):
(JSC::JSCell::isConstructor):
(JSC::JSCell::setStructure):
(JSC::JSCell::methodTable const):
(JSC::JSCell::inherits const):
(JSC::JSCell::classInfo const):
(JSC::JSCell::toBoolean const):
(JSC::JSCell::putInline):

  • Source/JavaScriptCore/runtime/JSCustomGetterFunction.cpp:

(JSC::JSC_DEFINE_HOST_FUNCTION):

  • Source/JavaScriptCore/runtime/JSDataViewPrototype.cpp:

(JSC::JSDataViewPrototype::finishCreation):
(JSC::getData):
(JSC::setData):
(JSC::JSC_DEFINE_CUSTOM_GETTER):

  • Source/JavaScriptCore/runtime/JSFinalizationRegistry.cpp:

(JSC::JSFinalizationRegistry::finishCreation):
(JSC::JSFinalizationRegistry::registerTarget):

  • Source/JavaScriptCore/runtime/JSFunction.cpp:

(JSC::JSFunction::create):
(JSC::JSFunction::finishCreation):
(JSC::JSFunction::name):
(JSC::JSFunction::toString):
(JSC::getCalculatedDisplayName):
(JSC::JSFunction::reifyLength):
(JSC::JSFunction::reifyLazyPropertyIfNeeded):
(JSC::JSFunction::reifyLazyPropertyForHostOrBuiltinIfNeeded):
(JSC::JSFunction::reifyLazyBoundNameIfNeeded):
(JSC::JSFunction::assertTypeInfoFlagInvariants):

  • Source/JavaScriptCore/runtime/JSFunction.h:

(JSC::JSFunction::createImpl):

  • Source/JavaScriptCore/runtime/JSFunctionInlines.h:

(JSC::JSFunction::createWithInvalidatedReallocationWatchpoint):
(JSC::JSFunction::isRemoteFunction const):
(JSC::isRemoteFunction):
(JSC::JSFunction::asStringConcurrently const):

  • Source/JavaScriptCore/runtime/JSGeneratorFunction.cpp:

(JSC::JSGeneratorFunction::createImpl):
(JSC::JSGeneratorFunction::create):
(JSC::JSGeneratorFunction::createWithInvalidatedReallocationWatchpoint):

  • Source/JavaScriptCore/runtime/JSGenericTypedArrayView.h:

(JSC::toPossiblySharedNativeTypedView):

  • Source/JavaScriptCore/runtime/JSGenericTypedArrayViewConstructorInlines.h:

(JSC::constructCustomArrayBufferIfNeeded):
(JSC::constructGenericTypedArrayViewWithArguments):
(JSC::constructGenericTypedArrayViewImpl):

  • Source/JavaScriptCore/runtime/JSGenericTypedArrayViewInlines.h:

(JSC::JSGenericTypedArrayView<Adaptor>::set):

  • Source/JavaScriptCore/runtime/JSGenericTypedArrayViewPrototypeFunctions.h:

(JSC::speciesConstruct):
(JSC::genericTypedArrayViewProtoFuncSet):
(JSC::genericTypedArrayViewProtoFuncSlice):
(JSC::genericTypedArrayViewPrivateFuncSubarrayCreate):

  • Source/JavaScriptCore/runtime/JSGenericTypedArrayViewPrototypeInlines.h:

(JSC::JSGenericTypedArrayViewPrototype<ViewClass>::finishCreation):

  • Source/JavaScriptCore/runtime/JSGlobalObject.cpp:

(JSC::JSC_DEFINE_HOST_FUNCTION):
(JSC::setupAdaptiveWatchpoint):
(JSC::JSGlobalObject::init):
(JSC::lastInPrototypeChain):
(JSC::JSGlobalObject::haveABadTime):
(JSC::JSGlobalObject::fixupPrototypeChainWithObjectPrototype):
(JSC::JSGlobalObject::resetPrototype):
(JSC::JSGlobalObject::tryInstallSpeciesWatchpoint):
(JSC::JSGlobalObject::finishCreation):

  • Source/JavaScriptCore/runtime/JSGlobalObjectFunctions.cpp:

(JSC::JSC_DEFINE_HOST_FUNCTION):

  • Source/JavaScriptCore/runtime/JSGlobalObjectInlines.h:

(JSC::JSGlobalObject::arrayPrototypeChainIsSane):
(JSC::JSGlobalObject::stringPrototypeChainIsSane):

  • Source/JavaScriptCore/runtime/JSInternalPromise.cpp:

(JSC::JSInternalPromise::then):

  • Source/JavaScriptCore/runtime/JSLexicalEnvironment.cpp:

(JSC::JSLexicalEnvironment::getOwnPropertySlot):
(JSC::JSLexicalEnvironment::put):

  • Source/JavaScriptCore/runtime/JSMap.cpp:

(JSC::JSMap::isIteratorProtocolFastAndNonObservable):

  • Source/JavaScriptCore/runtime/JSMicrotask.cpp:

(JSC::JSMicrotask::run):

  • Source/JavaScriptCore/runtime/JSModuleEnvironment.cpp:

(JSC::JSModuleEnvironment::getOwnPropertySlot):

  • Source/JavaScriptCore/runtime/JSModuleLoader.cpp:

(JSC::JSModuleLoader::finishCreation):
(JSC::JSModuleLoader::dependencyKeysIfEvaluated):
(JSC::JSModuleLoader::provideFetch):
(JSC::JSModuleLoader::loadAndEvaluateModule):
(JSC::JSModuleLoader::loadModule):
(JSC::JSModuleLoader::linkAndEvaluateModule):
(JSC::JSModuleLoader::requestImportModule):
(JSC::JSModuleLoader::evaluateNonVirtual):
(JSC::JSModuleLoader::getModuleNamespaceObject):
(JSC::JSC_DEFINE_HOST_FUNCTION):

  • Source/JavaScriptCore/runtime/JSModuleNamespaceObject.cpp:

(JSC::JSModuleNamespaceObject::finishCreation):

  • Source/JavaScriptCore/runtime/JSModuleNamespaceObject.h:
  • Source/JavaScriptCore/runtime/JSModuleRecord.cpp:

(JSC::JSModuleRecord::finishCreation):

  • Source/JavaScriptCore/runtime/JSNativeStdFunction.cpp:

(JSC::JSNativeStdFunction::finishCreation):

  • Source/JavaScriptCore/runtime/JSONObject.cpp:

(JSC::JSONObject::finishCreation):
(JSC::unwrapBoxedPrimitive):
(JSC::Stringifier::Stringifier):
(JSC::Stringifier::toJSON):
(JSC::Stringifier::appendStringifiedValue):
(JSC::Stringifier::Holder::appendNextProperty):
(JSC::Walker::walk):
(JSC::JSC_DEFINE_HOST_FUNCTION):

  • Source/JavaScriptCore/runtime/JSObject.cpp:

(JSC::JSObject::visitButterflyImpl):
(JSC::JSObject::estimatedSize):
(JSC::JSObject::calculatedClassName):
(JSC::JSObject::getOwnPropertySlotByIndex):
(JSC::ordinarySetSlow):
(JSC::JSObject::putInlineSlow):
(JSC::definePropertyOnReceiverSlow):
(JSC::JSObject::definePropertyOnReceiver):
(JSC::JSObject::putInlineFastReplacingStaticPropertyIfNeeded):
(JSC::JSObject::putByIndex):
(JSC::JSObject::enterDictionaryIndexingModeWhenArrayStorageAlreadyExists):
(JSC::JSObject::notifyPresenceOfIndexedAccessors):
(JSC::JSObject::createInitialIndexedStorage):
(JSC::JSObject::createArrayStorage):
(JSC::JSObject::createInitialArrayStorage):
(JSC::JSObject::convertUndecidedToInt32):
(JSC::JSObject::convertUndecidedToDouble):
(JSC::JSObject::convertUndecidedToContiguous):
(JSC::JSObject::constructConvertedArrayStorageWithoutCopyingElements):
(JSC::JSObject::convertUndecidedToArrayStorage):
(JSC::JSObject::convertInt32ToDouble):
(JSC::JSObject::convertInt32ToContiguous):
(JSC::JSObject::convertInt32ToArrayStorage):
(JSC::JSObject::convertDoubleToContiguous):
(JSC::JSObject::convertDoubleToArrayStorage):
(JSC::JSObject::convertContiguousToArrayStorage):
(JSC::JSObject::convertFromCopyOnWrite):
(JSC::JSObject::tryMakeWritableInt32Slow):
(JSC::JSObject::tryMakeWritableDoubleSlow):
(JSC::JSObject::tryMakeWritableContiguousSlow):
(JSC::JSObject::ensureArrayStorageSlow):
(JSC::JSObject::switchToSlowPutArrayStorage):
(JSC::JSObject::setPrototypeDirect):
(JSC::JSObject::setPrototypeWithCycleCheck):
(JSC::JSObject::getPrototype):
(JSC::JSObject::setPrototype):
(JSC::JSObject::putDirectCustomAccessor):
(JSC::JSObject::putDirectNonIndexAccessor):
(JSC::JSObject::hasEnumerableProperty const):
(JSC::JSObject::deleteProperty):
(JSC::callToPrimitiveFunction):
(JSC::JSObject::ordinaryToPrimitive const):
(JSC::JSObject::getOwnStaticPropertySlot):
(JSC::JSObject::findPropertyHashEntry const):
(JSC::JSObject::hasInstance):
(JSC::JSObject::getPropertyNames):
(JSC::JSObject::getOwnNonIndexPropertyNames):
(JSC::JSObject::seal):
(JSC::JSObject::freeze):
(JSC::JSObject::preventExtensions):
(JSC::JSObject::isExtensible):
(JSC::JSObject::reifyAllStaticProperties):
(JSC::JSObject::fillGetterPropertySlot):
(JSC::canDoFastPutDirectIndex):
(JSC::JSObject::defineOwnIndexedProperty):
(JSC::JSObject::putByIndexBeyondVectorLengthWithoutAttributes):
(JSC::JSObject::putByIndexBeyondVectorLengthWithArrayStorage):
(JSC::JSObject::putByIndexBeyondVectorLength):
(JSC::JSObject::putDirectIndexBeyondVectorLengthWithArrayStorage):
(JSC::JSObject::putDirectIndexSlowOrBeyondVectorLength):
(JSC::JSObject::getNewVectorLength):
(JSC::JSObject::increaseVectorLength):
(JSC::JSObject::ensureLengthSlow):
(JSC::JSObject::reallocateAndShrinkButterfly):
(JSC::JSObject::allocateMoreOutOfLineStorage):
(JSC::JSObject::getOwnPropertyDescriptor):
(JSC::JSObject::convertToDictionary):
(JSC::JSObject::convertToUncacheableDictionary):
(JSC::JSObject::shiftButterflyAfterFlattening):
(JSC::JSObject::getEnumerableLength):
(JSC::JSObject::getMethod):
(JSC::JSObject::anyObjectInChainMayInterceptIndexedAccesses const):
(JSC::JSObject::needsSlowPutIndexing const):
(JSC::JSObject::suggestedArrayStorageTransition const):

  • Source/JavaScriptCore/runtime/JSObject.h:

(JSC::JSObject::putByIndexInline):
(JSC::JSObject::hasIndexingHeader const):
(JSC::JSObject::getDirectIndex):
(JSC::JSObject::getDirect const):
(JSC::JSObject::getDirectOffset):
(JSC::JSObject::hasCustomProperties):
(JSC::JSObject::hasGetterSetterProperties):
(JSC::JSObject::hasCustomGetterSetterProperties):
(JSC::JSObject::hasNonReifiedStaticProperties):
(JSC::JSObject::isSealed):
(JSC::JSObject::isFrozen):
(JSC::JSObject::isStructureExtensible):
(JSC::JSObject::indexingShouldBeSparse):
(JSC::JSObject::staticPropertiesReified):
(JSC::JSObject::flattenDictionaryObject):
(JSC::JSObject::finishCreation):
(JSC::JSNonFinalObject::finishCreation):
(JSC::JSObject::getPrototypeDirect const):
(JSC::JSObject::getPrototype):
(JSC::JSObject::getOwnNonIndexPropertySlot):
(JSC::JSObject::fillCustomGetterPropertySlot):
(JSC::JSObject::getOwnPropertySlotImpl):
(JSC::JSObject::butterflyPreCapacity):
(JSC::JSObject::butterflyTotalSize):

  • Source/JavaScriptCore/runtime/JSObjectInlines.h:

(JSC::JSObject::canPerformFastPutInlineExcludingProto):
(JSC::JSObject::canPerformFastPutInline):
(JSC::JSObject::getPropertySlot):
(JSC::JSObject::getNonIndexPropertySlot):
(JSC::JSObject::getOwnPropertySlotInline):
(JSC::JSObject::mayInterceptIndexedAccesses):
(JSC::JSObject::putInlineForJSObject):
(JSC::JSObject::createDataProperty):
(JSC::JSObject::hasOwnProperty const):
(JSC::JSObject::putDirectInternal):
(JSC::JSObject::validatePutOwnDataProperty):
(JSC::getCallData):
(JSC::getConstructData):
(JSC::JSObject::deleteProperty):
(JSC::JSObject::getPrivateFieldSlot):
(JSC::JSObject::hasPrivateField):
(JSC::JSObject::getNonReifiedStaticPropertyNames):
(JSC::JSObject::hasPrivateBrand):
(JSC::JSObject::checkPrivateBrand):
(JSC::JSObject::setPrivateBrand):

  • Source/JavaScriptCore/runtime/JSPromise.cpp:

(JSC::JSPromise::createNewPromiseCapability):
(JSC::JSPromise::resolvedPromise):
(JSC::callFunction):
(JSC::JSPromise::resolve):
(JSC::JSPromise::reject):
(JSC::JSPromise::performPromiseThen):

  • Source/JavaScriptCore/runtime/JSPropertyNameEnumerator.cpp:

(JSC::getEnumerablePropertyNames):

  • Source/JavaScriptCore/runtime/JSPropertyNameEnumerator.h:

(JSC::propertyNameEnumerator):

  • Source/JavaScriptCore/runtime/JSProxy.cpp:

(JSC::JSProxy::setTarget):
(JSC::JSProxy::getOwnPropertySlot):
(JSC::JSProxy::getOwnPropertySlotByIndex):
(JSC::JSProxy::put):
(JSC::JSProxy::putByIndex):
(JSC::JSProxy::defineOwnProperty):
(JSC::JSProxy::deleteProperty):
(JSC::JSProxy::isExtensible):
(JSC::JSProxy::preventExtensions):
(JSC::JSProxy::deletePropertyByIndex):
(JSC::JSProxy::getOwnPropertyNames):
(JSC::JSProxy::setPrototype):
(JSC::JSProxy::getPrototype):

  • Source/JavaScriptCore/runtime/JSRemoteFunction.cpp:

(JSC::wrapValue):
(JSC::JSC_DEFINE_HOST_FUNCTION):
(JSC::JSRemoteFunction::tryCreate):
(JSC::JSRemoteFunction::finishCreation):

  • Source/JavaScriptCore/runtime/JSScope.cpp:

(JSC::abstractAccess):
(JSC::JSScope::resolve):
(JSC::JSScope::resolveScopeForHoistingFuncDeclInEval):
(JSC::JSScope::symbolTable):

  • Source/JavaScriptCore/runtime/JSScope.h:
  • Source/JavaScriptCore/runtime/JSSet.cpp:

(JSC::JSSet::isIteratorProtocolFastAndNonObservable):

  • Source/JavaScriptCore/runtime/JSString.cpp:

(JSC::JSString::dumpToStream):

  • Source/JavaScriptCore/runtime/JSStringIterator.cpp:

(JSC::JSStringIterator::finishCreation):

  • Source/JavaScriptCore/runtime/JSTypedArrayViewPrototype.cpp:

(JSC::JSC_DEFINE_HOST_FUNCTION):
(JSC::JSTypedArrayViewPrototype::finishCreation):

  • Source/JavaScriptCore/runtime/Lookup.cpp:

(JSC::reifyStaticAccessor):
(JSC::setUpStaticFunctionSlot):

  • Source/JavaScriptCore/runtime/Lookup.h:

(JSC::getStaticPropertySlotFromTable):
(JSC::reifyStaticProperty):

  • Source/JavaScriptCore/runtime/MapConstructor.cpp:

(JSC::JSC_DEFINE_HOST_FUNCTION):

  • Source/JavaScriptCore/runtime/MapIteratorPrototype.cpp:

(JSC::MapIteratorPrototype::finishCreation):

  • Source/JavaScriptCore/runtime/MapPrototype.cpp:

(JSC::MapPrototype::finishCreation):
(JSC::getMap):

  • Source/JavaScriptCore/runtime/MathObject.cpp:

(JSC::MathObject::finishCreation):

  • Source/JavaScriptCore/runtime/NativeErrorConstructor.cpp:

(JSC::NativeErrorConstructorBase::finishCreation):

  • Source/JavaScriptCore/runtime/NumberConstructor.cpp:

(JSC::NumberConstructor::finishCreation):

  • Source/JavaScriptCore/runtime/NumberObject.cpp:

(JSC::NumberObject::finishCreation):

  • Source/JavaScriptCore/runtime/NumberPrototype.cpp:

(JSC::NumberPrototype::finishCreation):
(JSC::toThisNumber):
(JSC::JSC_DEFINE_HOST_FUNCTION):

  • Source/JavaScriptCore/runtime/ObjectConstructor.cpp:

(JSC::objectConstructorGetOwnPropertyDescriptors):
(JSC::objectAssignGeneric):
(JSC::JSC_DEFINE_HOST_FUNCTION):
(JSC::toPropertyDescriptor):
(JSC::defineProperties):
(JSC::setIntegrityLevel):
(JSC::testIntegrityLevel):
(JSC::objectConstructorSeal):
(JSC::objectConstructorFreeze):
(JSC::ownPropertyKeys):

  • Source/JavaScriptCore/runtime/ObjectConstructorInlines.h:

(JSC::objectAssignFast):

  • Source/JavaScriptCore/runtime/ObjectInitializationScope.cpp:

(JSC::ObjectInitializationScope::verifyPropertiesAreInitialized):

  • Source/JavaScriptCore/runtime/ObjectPrototype.cpp:

(JSC::ObjectPrototype::finishCreation):
(JSC::objectPrototypeHasOwnProperty):
(JSC::JSC_DEFINE_HOST_FUNCTION):
(JSC::inferBuiltinTag):
(JSC::objectPrototypeToString):

  • Source/JavaScriptCore/runtime/Operations.cpp:

(JSC::jsTypeStringForValueWithConcurrency):
(JSC::normalizePrototypeChain):

  • Source/JavaScriptCore/runtime/Operations.h:

(JSC::jsTypeofIsObjectWithConcurrency):
(JSC::jsTypeofIsFunctionWithConcurrency):

  • Source/JavaScriptCore/runtime/ProgramExecutable.cpp:

(JSC::ProgramExecutable::initializeGlobalProperties):

  • Source/JavaScriptCore/runtime/PropertySlot.cpp:

(JSC::PropertySlot::customGetter const):

  • Source/JavaScriptCore/runtime/ProxyObject.cpp:

(JSC::ProxyObject::structureForTarget):
(JSC::ProxyObject::finishCreation):
(JSC::ProxyObject::performInternalMethodGetOwnProperty):
(JSC::ProxyObject::put):
(JSC::ProxyObject::putByIndexCommon):
(JSC::JSC_DEFINE_HOST_FUNCTION):
(JSC::ProxyObject::deleteProperty):
(JSC::ProxyObject::deletePropertyByIndex):
(JSC::ProxyObject::performPreventExtensions):
(JSC::ProxyObject::performDefineOwnProperty):
(JSC::ProxyObject::performGetOwnPropertyNames):

  • Source/JavaScriptCore/runtime/ReflectObject.cpp:

(JSC::ReflectObject::finishCreation):
(JSC::JSC_DEFINE_HOST_FUNCTION):

  • Source/JavaScriptCore/runtime/RegExpConstructor.cpp:

(JSC::RegExpConstructor::finishCreation):
(JSC::constructRegExp):

  • Source/JavaScriptCore/runtime/RegExpConstructor.h:

(JSC::isRegExp):

  • Source/JavaScriptCore/runtime/RegExpObject.cpp:

(JSC::RegExpObject::finishCreation):

  • Source/JavaScriptCore/runtime/RegExpPrototype.cpp:

(JSC::RegExpPrototype::finishCreation):
(JSC::JSC_DEFINE_HOST_FUNCTION):

  • Source/JavaScriptCore/runtime/RegExpStringIteratorPrototype.cpp:

(JSC::RegExpStringIteratorPrototype::finishCreation):

  • Source/JavaScriptCore/runtime/RuntimeType.cpp:

(JSC::runtimeTypeForValue):

  • Source/JavaScriptCore/runtime/RuntimeType.h:
  • Source/JavaScriptCore/runtime/SamplingProfiler.cpp:

(JSC::SamplingProfiler::processUnverifiedStackTraces):
(JSC::SamplingProfiler::StackFrame::nameFromCallee):
(JSC::SamplingProfiler::reportTopBytecodes):

  • Source/JavaScriptCore/runtime/ScriptExecutable.cpp:

(JSC::ScriptExecutable::installCode):
(JSC::ScriptExecutable::hasClearableCode const):
(JSC::ScriptExecutable::newCodeBlockFor):
(JSC::ScriptExecutable::newReplacementCodeBlockFor):
(JSC::ScriptExecutable::prepareForExecutionImpl):
(JSC::ScriptExecutable::overrideLineNumber const):
(JSC::ScriptExecutable::typeProfilingStartOffset const):
(JSC::ScriptExecutable::typeProfilingEndOffset const):

  • Source/JavaScriptCore/runtime/ScriptExecutable.h:
  • Source/JavaScriptCore/runtime/SetConstructor.cpp:

(JSC::JSC_DEFINE_HOST_FUNCTION):

  • Source/JavaScriptCore/runtime/SetIteratorPrototype.cpp:

(JSC::SetIteratorPrototype::finishCreation):

  • Source/JavaScriptCore/runtime/SetPrototype.cpp:

(JSC::SetPrototype::finishCreation):
(JSC::getSet):

  • Source/JavaScriptCore/runtime/ShadowRealmObject.cpp:

(JSC::ShadowRealmObject::finishCreation):

  • Source/JavaScriptCore/runtime/ShadowRealmPrototype.cpp:

(JSC::ShadowRealmPrototype::finishCreation):
(JSC::JSC_DEFINE_HOST_FUNCTION):

  • Source/JavaScriptCore/runtime/SparseArrayValueMap.cpp:

(JSC::SparseArrayValueMap::putEntry):
(JSC::SparseArrayValueMap::putDirect):

  • Source/JavaScriptCore/runtime/StringIteratorPrototype.cpp:

(JSC::StringIteratorPrototype::finishCreation):

  • Source/JavaScriptCore/runtime/StringObject.cpp:

(JSC::StringObject::finishCreation):

  • Source/JavaScriptCore/runtime/StringPrototype.cpp:

(JSC::StringPrototype::finishCreation):
(JSC::replaceUsingRegExpSearch):
(JSC::replaceUsingStringSearch):
(JSC::replace):
(JSC::JSC_DEFINE_HOST_FUNCTION):

  • Source/JavaScriptCore/runtime/Structure.cpp:

(JSC::Structure::materializePropertyTable):
(JSC::Structure::holesMustForwardToPrototype const):
(JSC::Structure::flattenDictionaryStructure):

  • Source/JavaScriptCore/runtime/Structure.h:
  • Source/JavaScriptCore/runtime/StructureCache.cpp:

(JSC::StructureCache::emptyStructureForPrototypeFromBaseStructure):

  • Source/JavaScriptCore/runtime/StructureChain.cpp:

(JSC::StructureChain::create):
(JSC::StructureChain::finishCreation):

  • Source/JavaScriptCore/runtime/StructureInlines.h:

(JSC::Structure::create):
(JSC::Structure::get):
(JSC::Structure::prototypeChain const):
(JSC::Structure::isValid const):
(JSC::Structure::shouldConvertToPolyProto):

  • Source/JavaScriptCore/runtime/StructureRareData.cpp:

(JSC::StructureRareData::cacheSpecialPropertySlow):

  • Source/JavaScriptCore/runtime/Symbol.cpp:

(JSC::Symbol::finishCreation):

  • Source/JavaScriptCore/runtime/SymbolObject.cpp:

(JSC::SymbolObject::finishCreation):

  • Source/JavaScriptCore/runtime/SymbolPrototype.cpp:

(JSC::SymbolPrototype::finishCreation):
(JSC::tryExtractSymbol):
(JSC::JSC_DEFINE_CUSTOM_GETTER):
(JSC::JSC_DEFINE_HOST_FUNCTION):

  • Source/JavaScriptCore/runtime/TemporalCalendarPrototype.cpp:

(JSC::TemporalCalendarPrototype::finishCreation):
(JSC::JSC_DEFINE_HOST_FUNCTION):
(JSC::defaultMergeFields):

  • Source/JavaScriptCore/runtime/TemporalDuration.cpp:

(JSC::TemporalDuration::finishCreation):
(JSC::TemporalDuration::fromDurationLike):
(JSC::TemporalDuration::toTemporalDuration):
(JSC::TemporalDuration::from):

  • Source/JavaScriptCore/runtime/TemporalDurationPrototype.cpp:

(JSC::TemporalDurationPrototype::finishCreation):
(JSC::JSC_DEFINE_HOST_FUNCTION):
(JSC::JSC_DEFINE_CUSTOM_GETTER):

  • Source/JavaScriptCore/runtime/TemporalInstant.cpp:
  • Source/JavaScriptCore/runtime/TemporalInstantPrototype.cpp:

(JSC::TemporalInstantPrototype::finishCreation):
(JSC::JSC_DEFINE_HOST_FUNCTION):
(JSC::JSC_DEFINE_CUSTOM_GETTER):

  • Source/JavaScriptCore/runtime/TemporalNow.cpp:

(JSC::TemporalNow::finishCreation):

  • Source/JavaScriptCore/runtime/TemporalObject.cpp:

(JSC::createCalendarConstructor):
(JSC::createNowObject):
(JSC::createDurationConstructor):
(JSC::createInstantConstructor):
(JSC::createPlainDateConstructor):
(JSC::createPlainTimeConstructor):
(JSC::createTimeZoneConstructor):
(JSC::TemporalObject::finishCreation):

  • Source/JavaScriptCore/runtime/TemporalPlainDate.cpp:

(JSC::TemporalPlainDate::finishCreation):

  • Source/JavaScriptCore/runtime/TemporalPlainDateConstructor.cpp:

(JSC::JSC_DEFINE_HOST_FUNCTION):

  • Source/JavaScriptCore/runtime/TemporalPlainDatePrototype.cpp:

(JSC::TemporalPlainDatePrototype::finishCreation):
(JSC::JSC_DEFINE_HOST_FUNCTION):
(JSC::JSC_DEFINE_CUSTOM_GETTER):

  • Source/JavaScriptCore/runtime/TemporalPlainTime.cpp:

(JSC::TemporalPlainTime::finishCreation):
(JSC::getTemporalCalendarWithISODefault):
(JSC::TemporalPlainTime::from):
(JSC::TemporalPlainTime::with const):

  • Source/JavaScriptCore/runtime/TemporalPlainTimeConstructor.cpp:

(JSC::JSC_DEFINE_HOST_FUNCTION):

  • Source/JavaScriptCore/runtime/TemporalPlainTimePrototype.cpp:

(JSC::TemporalPlainTimePrototype::finishCreation):
(JSC::JSC_DEFINE_HOST_FUNCTION):
(JSC::JSC_DEFINE_CUSTOM_GETTER):

  • Source/JavaScriptCore/runtime/TemporalTimeZonePrototype.cpp:

(JSC::TemporalTimeZonePrototype::finishCreation):
(JSC::JSC_DEFINE_HOST_FUNCTION):

  • Source/JavaScriptCore/runtime/TestRunnerUtils.cpp:

(JSC::getExecutableForFunction):

  • Source/JavaScriptCore/runtime/ThrowScope.cpp:

(JSC::ThrowScope::throwException):

  • Source/JavaScriptCore/runtime/TypeProfilerLog.cpp:

(JSC::TypeProfilerLog::processLogEntries):

  • Source/JavaScriptCore/runtime/VM.cpp:

(JSC::VM::throwException):
(JSC::VM::callPromiseRejectionCallback):

  • Source/JavaScriptCore/runtime/WeakMapConstructor.cpp:

(JSC::JSC_DEFINE_HOST_FUNCTION):

  • Source/JavaScriptCore/runtime/WeakMapPrototype.cpp:

(JSC::WeakMapPrototype::finishCreation):
(JSC::getWeakMap):

  • Source/JavaScriptCore/runtime/WeakObjectRefPrototype.cpp:

(JSC::WeakObjectRefPrototype::finishCreation):
(JSC::getWeakRef):

  • Source/JavaScriptCore/runtime/WeakSetConstructor.cpp:

(JSC::JSC_DEFINE_HOST_FUNCTION):

  • Source/JavaScriptCore/runtime/WeakSetPrototype.cpp:

(JSC::WeakSetPrototype::finishCreation):
(JSC::getWeakSet):

  • Source/JavaScriptCore/tools/HeapVerifier.cpp:

(JSC::HeapVerifier::validateJSCell):
(JSC::HeapVerifier::reportCell):

  • Source/JavaScriptCore/tools/JSDollarVM.cpp:

(JSC::JSC_DEFINE_HOST_FUNCTION):
(JSC::getExecutableForFunction):
(JSC::codeBlockFromArg):
(JSC::callWithStackSizeProbeFunction):
(JSC::JSC_DEFINE_HOST_FUNCTION_WITH_ATTRIBUTES):
(JSC::JSDollarVM::finishCreation):

  • Source/JavaScriptCore/tools/VMInspector.cpp:

(JSC::VMInspector::dumpCellMemoryToStream):

  • Source/JavaScriptCore/tools/VMInspector.h:
  • Source/JavaScriptCore/tools/VMInspectorInlines.h:

(JSC::VMInspector::verifyCellSize):
(JSC::VMInspector::verifyCell):

  • Source/JavaScriptCore/wasm/WasmGlobal.cpp:

(JSC::Wasm::Global::set):

  • Source/JavaScriptCore/wasm/WasmInstance.cpp:

(JSC::Wasm::Instance::setFunctionWrapper):
(JSC::Wasm::Instance::initElementSegment):

  • Source/JavaScriptCore/wasm/WasmOperations.cpp:

(JSC::Wasm::JSC_DEFINE_JIT_OPERATION):
(JSC::Wasm::setWasmTableElement):

  • Source/JavaScriptCore/wasm/WasmSlowPaths.cpp:

(JSC::LLInt::doWasmCallRef):
(JSC::LLInt::WASM_SLOW_PATH_DECL):

  • Source/JavaScriptCore/wasm/js/JSWebAssembly.cpp:

(JSC::JSWebAssembly::finishCreation):
(JSC::JSC_DEFINE_HOST_FUNCTION):

  • Source/JavaScriptCore/wasm/js/JSWebAssemblyException.cpp:

(JSC::JSWebAssemblyException::finishCreation):

  • Source/JavaScriptCore/wasm/js/JSWebAssemblyGlobal.cpp:

(JSC::JSWebAssemblyGlobal::finishCreation):

  • Source/JavaScriptCore/wasm/js/JSWebAssemblyHelpers.h:

(JSC::getWasmBufferFromValue):
(JSC::createSourceBufferFromValue):
(JSC::isWebAssemblyHostFunction):
(JSC::fromJSValue):

  • Source/JavaScriptCore/wasm/js/JSWebAssemblyInstance.cpp:

(JSC::JSWebAssemblyInstance::finishCreation):

  • Source/JavaScriptCore/wasm/js/JSWebAssemblyMemory.cpp:

(JSC::JSWebAssemblyMemory::finishCreation):

  • Source/JavaScriptCore/wasm/js/JSWebAssemblyModule.cpp:

(JSC::JSWebAssemblyModule::finishCreation):

  • Source/JavaScriptCore/wasm/js/JSWebAssemblyTable.cpp:

(JSC::JSWebAssemblyTable::finishCreation):

  • Source/JavaScriptCore/wasm/js/WebAssemblyCompileErrorPrototype.cpp:

(JSC::WebAssemblyCompileErrorPrototype::finishCreation):

  • Source/JavaScriptCore/wasm/js/WebAssemblyExceptionConstructor.cpp:

(JSC::JSC_DEFINE_HOST_FUNCTION):

  • Source/JavaScriptCore/wasm/js/WebAssemblyExceptionPrototype.cpp:

(JSC::WebAssemblyExceptionPrototype::finishCreation):
(JSC::getException):
(JSC::getTag):
(JSC::JSC_DEFINE_HOST_FUNCTION):

  • Source/JavaScriptCore/wasm/js/WebAssemblyFunctionBase.cpp:

(JSC::WebAssemblyFunctionBase::finishCreation):

  • Source/JavaScriptCore/wasm/js/WebAssemblyGlobalConstructor.cpp:

(JSC::JSC_DEFINE_HOST_FUNCTION):

  • Source/JavaScriptCore/wasm/js/WebAssemblyGlobalPrototype.cpp:

(JSC::getGlobal):
(JSC::WebAssemblyGlobalPrototype::finishCreation):

  • Source/JavaScriptCore/wasm/js/WebAssemblyInstanceConstructor.cpp:

(JSC::JSC_DEFINE_HOST_FUNCTION):

  • Source/JavaScriptCore/wasm/js/WebAssemblyInstancePrototype.cpp:

(JSC::getInstance):
(JSC::WebAssemblyInstancePrototype::finishCreation):

  • Source/JavaScriptCore/wasm/js/WebAssemblyLinkErrorPrototype.cpp:

(JSC::WebAssemblyLinkErrorPrototype::finishCreation):

  • Source/JavaScriptCore/wasm/js/WebAssemblyMemoryPrototype.cpp:

(JSC::getMemory):
(JSC::WebAssemblyMemoryPrototype::finishCreation):

  • Source/JavaScriptCore/wasm/js/WebAssemblyModuleConstructor.cpp:

(JSC::JSC_DEFINE_HOST_FUNCTION):

  • Source/JavaScriptCore/wasm/js/WebAssemblyModulePrototype.cpp:

(JSC::WebAssemblyModulePrototype::finishCreation):

  • Source/JavaScriptCore/wasm/js/WebAssemblyModuleRecord.cpp:

(JSC::WebAssemblyModuleRecord::finishCreation):
(JSC::WebAssemblyModuleRecord::initializeImports):
(JSC::WebAssemblyModuleRecord::initializeExports):
(JSC::WebAssemblyModuleRecord::evaluate):

  • Source/JavaScriptCore/wasm/js/WebAssemblyRuntimeErrorPrototype.cpp:

(JSC::WebAssemblyRuntimeErrorPrototype::finishCreation):

  • Source/JavaScriptCore/wasm/js/WebAssemblyTableConstructor.cpp:

(JSC::JSC_DEFINE_HOST_FUNCTION):

  • Source/JavaScriptCore/wasm/js/WebAssemblyTablePrototype.cpp:

(JSC::getTable):
(JSC::JSC_DEFINE_HOST_FUNCTION):
(JSC::WebAssemblyTablePrototype::finishCreation):

  • Source/JavaScriptCore/wasm/js/WebAssemblyTagPrototype.cpp:

(JSC::WebAssemblyTagPrototype::finishCreation):
(JSC::getTag):

  • Source/JavaScriptCore/wasm/js/WebAssemblyWrapperFunction.cpp:

(JSC::WebAssemblyWrapperFunction::create):
(JSC::WebAssemblyWrapperFunction::finishCreation):
(JSC::JSC_DEFINE_HOST_FUNCTION):

  • Source/WebKit/WebProcess/Automation/WebAutomationSessionProxy.cpp:

(WebKit::WebAutomationSessionProxy::setScriptObject):
(WebKit::WebAutomationSessionProxy::elementForNodeHandle):

  • Source/WebKit/WebProcess/InjectedBundle/InjectedBundle.cpp:

(WebKit::InjectedBundle::reportException):

  • Source/WebKit/WebProcess/WebPage/IPCTestingAPI.cpp:

(WebKit::IPCTestingAPI::encodeArgument):

  • Source/WebKit/WebProcess/WebPage/WebFrame.cpp:

(WebKit::WebFrame::counterValue):

  • Source/WebKitLegacy/mac/DOM/DOM.mm:

(+[DOMNode _nodeFromJSWrapper:]):

  • Source/WebKitLegacy/mac/WebView/WebFrame.mm:

(-[WebFrame _stringByEvaluatingJavaScriptFromString:withGlobalObject:inScriptWorld:]):

  • Source/WebKitLegacy/mac/WebView/WebView.mm:

(+[WebView _reportException:inContext:]):
(aeDescFromJSValue):

  • Source/WebKitLegacy/win/WebFrame.cpp:

(WebFrame::stringByEvaluatingJavaScriptInScriptWorld):

  • Source/WebKitLegacy/win/WebView.cpp:

(WebView::reportException):

  • Source/WebCore/Modules/webaudio/AudioWorkletGlobalScope.cpp:

(WebCore::AudioWorkletGlobalScope::registerProcessor):
(WebCore::AudioWorkletGlobalScope::createProcessor):

  • Source/WebCore/Modules/webaudio/AudioWorkletProcessor.cpp:

(WebCore::copyDataFromBusesToJSArray):
(WebCore::copyDataFromParameterMapToJSObject):
(WebCore::zeroJSArray):
(WebCore::AudioWorkletProcessor::buildJSArguments):

  • Source/WebCore/bindings/js/CommonVM.cpp:

(WebCore::lexicalFrameFromCommonVM):

  • Source/WebCore/bindings/js/DOMGCOutputConstraint.cpp:

(WebCore::DOMGCOutputConstraint::executeImplImpl):

  • Source/WebCore/bindings/js/IDBBindingUtilities.cpp:

(WebCore::get):
(WebCore::createIDBKeyFromValue):

  • Source/WebCore/bindings/js/InternalWritableStream.cpp:

(WebCore::invokeWritableStreamFunction):

  • Source/WebCore/bindings/js/JSCSSRuleListCustom.cpp:

(WebCore::JSCSSRuleListOwner::isReachableFromOpaqueRoots):

  • Source/WebCore/bindings/js/JSCallbackData.cpp:

(WebCore::JSCallbackData::invokeCallback):

  • Source/WebCore/bindings/js/JSCustomElementInterface.cpp:

(WebCore::constructCustomElementSynchronously):
(WebCore::JSCustomElementInterface::upgradeElement):
(WebCore::JSCustomElementInterface::invokeCallback):

  • Source/WebCore/bindings/js/JSCustomElementRegistryCustom.cpp:

(WebCore::getCustomElementCallback):
(WebCore::JSCustomElementRegistry::define):

  • Source/WebCore/bindings/js/JSDOMAbstractOperations.h:

(WebCore::isVisibleNamedProperty):
(WebCore::accessVisibleNamedProperty):

  • Source/WebCore/bindings/js/JSDOMAsyncIterator.h:

(WebCore::JSIterator>::next):
(WebCore::JSIterator>::runNextSteps):
(WebCore::JSIterator>::finishCreation):

  • Source/WebCore/bindings/js/JSDOMBuiltinConstructor.h:

(WebCore::JSDOMBuiltinConstructor<JSClass>::finishCreation):

  • Source/WebCore/bindings/js/JSDOMCastThisValue.h:

(WebCore::castThisValue):

  • Source/WebCore/bindings/js/JSDOMConstructor.h:

(WebCore::JSDOMConstructor<JSClass>::finishCreation):

  • Source/WebCore/bindings/js/JSDOMConstructorNotCallable.h:

(WebCore::JSDOMConstructorNotCallable<JSClass>::finishCreation):

  • Source/WebCore/bindings/js/JSDOMConstructorNotConstructable.h:

(WebCore::JSDOMConstructorNotConstructable<JSClass>::finishCreation):

  • Source/WebCore/bindings/js/JSDOMConvertBufferSource.h:

(WebCore::toPossiblySharedArrayBufferView):

  • Source/WebCore/bindings/js/JSDOMConvertCallbacks.h:

(WebCore::Converter<IDLCallbackFunction<T>>::convert):

  • Source/WebCore/bindings/js/JSDOMConvertDate.cpp:

(WebCore::valueToDate):

  • Source/WebCore/bindings/js/JSDOMConvertPromise.h:

(WebCore::Converter<IDLPromise<T>>::convert):

  • Source/WebCore/bindings/js/JSDOMConvertRecord.h:
  • Source/WebCore/bindings/js/JSDOMConvertScheduledAction.h:

(WebCore::Converter<IDLScheduledAction>::convert):

  • Source/WebCore/bindings/js/JSDOMConvertXPathNSResolver.h:

(WebCore::Converter<IDLInterface<XPathNSResolver>>::convert):

  • Source/WebCore/bindings/js/JSDOMExceptionHandling.cpp:

(WebCore::reportException):
(WebCore::retrieveErrorMessageWithoutName):
(WebCore::retrieveErrorMessage):

  • Source/WebCore/bindings/js/JSDOMGlobalObject.cpp:

(WebCore::JSC_DEFINE_HOST_FUNCTION):
(WebCore::JSDOMGlobalObject::finishCreation):
(WebCore::JSDOMGlobalObject::scriptExecutionContext const):
(WebCore::scriptModuleLoader):

  • Source/WebCore/bindings/js/JSDOMGlobalObject.h:

(WebCore::toJSDOMGlobalObject):

  • Source/WebCore/bindings/js/JSDOMGuardedObject.h:

(WebCore::DOMGuarded::guarded const):

  • Source/WebCore/bindings/js/JSDOMIterator.h:

(WebCore::iteratorForEach):
(WebCore::IteratorTraits>::next):
(WebCore::IteratorTraits>::finishCreation):

  • Source/WebCore/bindings/js/JSDOMLegacyFactoryFunction.h:

(WebCore::JSDOMLegacyFactoryFunction<JSClass>::finishCreation):

  • Source/WebCore/bindings/js/JSDOMMapLike.cpp:

(WebCore::clearBackingMap):
(WebCore::setToBackingMap):
(WebCore::forwardFunctionCallToBackingMap):
(WebCore::forwardForEachCallToBackingMap):

  • Source/WebCore/bindings/js/JSDOMMicrotask.cpp:

(WebCore::JSDOMMicrotask::run):

  • Source/WebCore/bindings/js/JSDOMPromise.cpp:

(WebCore::DOMPromise::whenPromiseIsSettled):

  • Source/WebCore/bindings/js/JSDOMPromiseDeferred.cpp:

(WebCore::createRejectedPromiseWithTypeError):

  • Source/WebCore/bindings/js/JSDOMPromiseDeferred.h:

(WebCore::callPromiseFunction):

  • Source/WebCore/bindings/js/JSDOMSetLike.cpp:

(WebCore::clearBackingSet):
(WebCore::addToBackingSet):
(WebCore::forwardFunctionCallToBackingSet):
(WebCore::forwardForEachCallToBackingSet):

  • Source/WebCore/bindings/js/JSDOMWindowBase.cpp:

(WebCore::JSDOMWindowBase::finishCreation):

  • Source/WebCore/bindings/js/JSDOMWindowCustom.cpp:

(WebCore::JSDOMWindow::queueMicrotask):
(WebCore::JSDOMWindow::toWrapped):

  • Source/WebCore/bindings/js/JSDOMWindowProperties.cpp:

(WebCore::JSDOMWindowProperties::finishCreation):
(WebCore::JSDOMWindowProperties::getOwnPropertySlot):

  • Source/WebCore/bindings/js/JSDOMWrapper.cpp:

(WebCore::JSDOMObject::JSDOMObject):

  • Source/WebCore/bindings/js/JSDeprecatedCSSOMValueCustom.cpp:

(WebCore::JSDeprecatedCSSOMValueOwner::isReachableFromOpaqueRoots):

  • Source/WebCore/bindings/js/JSDocumentCustom.h:

(JSC::JSCastingHelpers::InheritsTraits<WebCore::JSDocument>::inherits):

  • Source/WebCore/bindings/js/JSElementCustom.h:

(JSC::JSCastingHelpers::InheritsTraits<WebCore::JSElement>::inherits):

  • Source/WebCore/bindings/js/JSErrorHandler.cpp:

(WebCore::JSErrorHandler::handleEvent):

  • Source/WebCore/bindings/js/JSEventCustom.h:

(JSC::JSCastingHelpers::InheritsTraits<WebCore::JSEvent>::inherits):

  • Source/WebCore/bindings/js/JSEventListener.cpp:

(WebCore::JSEventListener::handleEvent):
(WebCore::JSEventListener::functionName const):

  • Source/WebCore/bindings/js/JSEventTargetCustom.cpp:

(WebCore::JSEventTarget::toWrapped):
(WebCore::jsEventTargetCast):

  • Source/WebCore/bindings/js/JSExecState.cpp:

(WebCore::executionContext):

  • Source/WebCore/bindings/js/JSNavigatorCustom.cpp:

(WebCore::JSNavigator::getUserMedia):

  • Source/WebCore/bindings/js/JSNodeCustom.cpp:

(WebCore::JSNode::pushEventHandlerScope const):

  • Source/WebCore/bindings/js/JSNodeCustom.h:

(JSC::JSCastingHelpers::InheritsTraits<WebCore::JSNode>::inherits):

  • Source/WebCore/bindings/js/JSNodeListCustom.cpp:

(WebCore::JSNodeListOwner::isReachableFromOpaqueRoots):

  • Source/WebCore/bindings/js/JSPluginElementFunctions.cpp:

(WebCore::JSC_DEFINE_CUSTOM_GETTER):
(WebCore::pluginElementCustomGetOwnPropertySlot):
(WebCore::pluginElementCustomPut):
(WebCore::JSC_DEFINE_HOST_FUNCTION):

  • Source/WebCore/bindings/js/JSReadableStreamSourceCustom.cpp:

(WebCore::JSReadableStreamSource::start):

  • Source/WebCore/bindings/js/JSShadowRealmGlobalScopeBase.cpp:

(WebCore::JSShadowRealmGlobalScopeBase::finishCreation):

  • Source/WebCore/bindings/js/JSWindowProxy.cpp:

(WebCore::JSWindowProxy::finishCreation):
(WebCore::JSWindowProxy::setWindow):
(WebCore::JSWindowProxy::wrapped const):
(WebCore::JSWindowProxy::toWrapped):

  • Source/WebCore/bindings/js/JSWorkerGlobalScopeBase.cpp:

(WebCore::JSWorkerGlobalScopeBase::finishCreation):

  • Source/WebCore/bindings/js/JSWorkerGlobalScopeCustom.cpp:

(WebCore::JSWorkerGlobalScope::queueMicrotask):

  • Source/WebCore/bindings/js/JSWorkletGlobalScopeBase.cpp:

(WebCore::JSWorkletGlobalScopeBase::finishCreation):

  • Source/WebCore/bindings/js/ReadableStream.cpp:

(WebCore::invokeReadableStreamFunction):
(WebCore::checkReadableStream):
(WebCore::ReadableStream::isDisturbed):

  • Source/WebCore/bindings/js/ReadableStream.h:

(WebCore::JSReadableStreamWrapperConverter::toWrapped):

  • Source/WebCore/bindings/js/ReadableStreamDefaultController.cpp:

(WebCore::invokeReadableStreamDefaultControllerFunction):

  • Source/WebCore/bindings/js/ScheduledAction.cpp:

(WebCore::ScheduledAction::executeFunctionInContext):

  • Source/WebCore/bindings/js/ScriptController.cpp:

(WebCore::ScriptController::evaluateModule):
(WebCore::ScriptController::callInWorld):
(WebCore::ScriptController::executeAsynchronousUserAgentScriptInWorld):

  • Source/WebCore/bindings/js/ScriptModuleLoader.cpp:

(WebCore::ScriptModuleLoader::fetch):
(WebCore::ScriptModuleLoader::evaluate):

  • Source/WebCore/bindings/js/SerializedScriptValue.cpp:

(WebCore::CloneSerializer::isArray):
(WebCore::CloneSerializer::isMap):
(WebCore::CloneSerializer::isSet):
(WebCore::CloneSerializer::getProperty):
(WebCore::CloneSerializer::toJSArrayBuffer):
(WebCore::CloneSerializer::dumpArrayBufferView):
(WebCore::CloneSerializer::dumpDOMPoint):
(WebCore::CloneSerializer::dumpDOMRect):
(WebCore::CloneSerializer::dumpDOMMatrix):
(WebCore::CloneSerializer::dumpIfTerminal):
(WebCore::CloneSerializer::serialize):
(WebCore::CloneDeserializer::CloneDeserializer):
(WebCore::CloneDeserializer::readArrayBufferViewImpl):
(WebCore::CloneDeserializer::readTerminal):

  • Source/WebCore/bindings/js/StructuredClone.cpp:

(WebCore::JSC_DEFINE_HOST_FUNCTION):

  • Source/WebCore/bindings/js/WindowProxy.cpp:

(WebCore::WindowProxy::clearJSWindowProxiesNotMatchingDOMWindow):

  • Source/WebCore/bindings/scripts/CodeGeneratorJS.pm:

(GeneratePut):
(GeneratePutByIndex):
(GenerateOverloadDispatcher):
(GenerateImplementation):
(GenerateAttributeSetterBodyDefinition):
(GenerateCallbackImplementationContent):
(GenerateConstructorHelperMethods):

  • Source/WebCore/bindings/scripts/test/JS/JSDOMWindow.cpp:

(WebCore::JSDOMWindowDOMConstructor::initializeProperties):
(WebCore::JSC_DEFINE_CUSTOM_GETTER):
(WebCore::JSDOMWindow::toWrapped):

  • Source/WebCore/bindings/scripts/test/JS/JSDedicatedWorkerGlobalScope.cpp:

(WebCore::JSDedicatedWorkerGlobalScopeDOMConstructor::initializeProperties):
(WebCore::JSC_DEFINE_CUSTOM_GETTER):

  • Source/WebCore/bindings/scripts/test/JS/JSExposedStar.cpp:

(WebCore::JSExposedStar::finishCreation):
(WebCore::JSC_DEFINE_CUSTOM_GETTER):
(WebCore::JSExposedStar::toWrapped):

  • Source/WebCore/bindings/scripts/test/JS/JSExposedToWorkerAndWindow.cpp:

(WebCore::JSExposedToWorkerAndWindow::finishCreation):
(WebCore::JSC_DEFINE_CUSTOM_GETTER):
(WebCore::JSExposedToWorkerAndWindow::toWrapped):

  • Source/WebCore/bindings/scripts/test/JS/JSPaintWorkletGlobalScope.cpp:

(WebCore::JSPaintWorkletGlobalScopeDOMConstructor::initializeProperties):
(WebCore::JSC_DEFINE_CUSTOM_GETTER):

  • Source/WebCore/bindings/scripts/test/JS/JSServiceWorkerGlobalScope.cpp:

(WebCore::JSServiceWorkerGlobalScopeDOMConstructor::initializeProperties):
(WebCore::JSC_DEFINE_CUSTOM_GETTER):

  • Source/WebCore/bindings/scripts/test/JS/JSShadowRealmGlobalScope.cpp:

(WebCore::JSShadowRealmGlobalScopeDOMConstructor::initializeProperties):
(WebCore::JSC_DEFINE_CUSTOM_GETTER):
(WebCore::JSShadowRealmGlobalScope::toWrapped):

  • Source/WebCore/bindings/scripts/test/JS/JSSharedWorkerGlobalScope.cpp:

(WebCore::JSSharedWorkerGlobalScopeDOMConstructor::initializeProperties):
(WebCore::JSC_DEFINE_CUSTOM_GETTER):

  • Source/WebCore/bindings/scripts/test/JS/JSTestCEReactions.cpp:

(WebCore::JSTestCEReactions::finishCreation):
(WebCore::JSC_DEFINE_CUSTOM_GETTER):
(WebCore::setJSTestCEReactions_stringifierAttributeSetter):
(WebCore::setJSTestCEReactions_stringifierAttributeNotNeededSetter):
(WebCore::JSTestCEReactions::toWrapped):

  • Source/WebCore/bindings/scripts/test/JS/JSTestCEReactionsStringifier.cpp:

(WebCore::JSTestCEReactionsStringifier::finishCreation):
(WebCore::JSC_DEFINE_CUSTOM_GETTER):
(WebCore::JSTestCEReactionsStringifier::toWrapped):

  • Source/WebCore/bindings/scripts/test/JS/JSTestCallTracer.cpp:

(WebCore::JSTestCallTracer::finishCreation):
(WebCore::JSC_DEFINE_CUSTOM_GETTER):
(WebCore::JSTestCallTracer::toWrapped):

  • Source/WebCore/bindings/scripts/test/JS/JSTestCallbackFunction.cpp:

(WebCore::JSTestCallbackFunction::JSTestCallbackFunction):

  • Source/WebCore/bindings/scripts/test/JS/JSTestCallbackFunctionRethrow.cpp:

(WebCore::JSTestCallbackFunctionRethrow::JSTestCallbackFunctionRethrow):

  • Source/WebCore/bindings/scripts/test/JS/JSTestCallbackFunctionWithThisObject.cpp:

(WebCore::JSTestCallbackFunctionWithThisObject::JSTestCallbackFunctionWithThisObject):

  • Source/WebCore/bindings/scripts/test/JS/JSTestCallbackFunctionWithTypedefs.cpp:

(WebCore::JSTestCallbackFunctionWithTypedefs::JSTestCallbackFunctionWithTypedefs):

  • Source/WebCore/bindings/scripts/test/JS/JSTestCallbackInterface.cpp:

(WebCore::JSTestCallbackInterface::JSTestCallbackInterface):

  • Source/WebCore/bindings/scripts/test/JS/JSTestClassWithJSBuiltinConstructor.cpp:

(WebCore::JSTestClassWithJSBuiltinConstructor::finishCreation):
(WebCore::JSC_DEFINE_CUSTOM_GETTER):
(WebCore::JSTestClassWithJSBuiltinConstructor::toWrapped):

  • Source/WebCore/bindings/scripts/test/JS/JSTestConditionalIncludes.cpp:

(WebCore::JSTestConditionalIncludes::finishCreation):
(WebCore::JSC_DEFINE_CUSTOM_GETTER):
(WebCore::JSTestConditionalIncludes::toWrapped):

  • Source/WebCore/bindings/scripts/test/JS/JSTestConditionallyReadWrite.cpp:

(WebCore::JSTestConditionallyReadWrite::finishCreation):
(WebCore::JSC_DEFINE_CUSTOM_GETTER):
(WebCore::JSTestConditionallyReadWrite::toWrapped):

  • Source/WebCore/bindings/scripts/test/JS/JSTestDOMJIT.cpp:

(WebCore::JSTestDOMJIT::finishCreation):
(WebCore::JSC_DEFINE_CUSTOM_GETTER):

  • Source/WebCore/bindings/scripts/test/JS/JSTestDefaultToJSON.cpp:

(WebCore::JSTestDefaultToJSON::finishCreation):
(WebCore::JSC_DEFINE_CUSTOM_GETTER):
(WebCore::JSTestDefaultToJSON::toWrapped):

  • Source/WebCore/bindings/scripts/test/JS/JSTestDefaultToJSONFilteredByExposed.cpp:

(WebCore::JSTestDefaultToJSONFilteredByExposed::finishCreation):
(WebCore::JSC_DEFINE_CUSTOM_GETTER):
(WebCore::JSTestDefaultToJSONFilteredByExposed::toWrapped):

  • Source/WebCore/bindings/scripts/test/JS/JSTestDefaultToJSONIndirectInheritance.cpp:

(WebCore::JSTestDefaultToJSONIndirectInheritance::finishCreation):
(WebCore::JSC_DEFINE_CUSTOM_GETTER):

  • Source/WebCore/bindings/scripts/test/JS/JSTestDefaultToJSONInherit.cpp:

(WebCore::JSTestDefaultToJSONInherit::finishCreation):
(WebCore::JSC_DEFINE_CUSTOM_GETTER):

  • Source/WebCore/bindings/scripts/test/JS/JSTestDefaultToJSONInheritFinal.cpp:

(WebCore::JSTestDefaultToJSONInheritFinal::finishCreation):
(WebCore::JSC_DEFINE_CUSTOM_GETTER):

  • Source/WebCore/bindings/scripts/test/JS/JSTestDelegateToSharedSyntheticAttribute.cpp:

(WebCore::JSTestDelegateToSharedSyntheticAttribute::finishCreation):
(WebCore::JSC_DEFINE_CUSTOM_GETTER):
(WebCore::JSTestDelegateToSharedSyntheticAttribute::toWrapped):

  • Source/WebCore/bindings/scripts/test/JS/JSTestDomainSecurity.cpp:

(WebCore::JSTestDomainSecurity::finishCreation):
(WebCore::JSC_DEFINE_CUSTOM_GETTER):
(WebCore::JSTestDomainSecurity::toWrapped):

  • Source/WebCore/bindings/scripts/test/JS/JSTestEnabledBySetting.cpp:

(WebCore::JSTestEnabledBySetting::finishCreation):
(WebCore::JSC_DEFINE_CUSTOM_GETTER):
(WebCore::JSTestEnabledBySetting::toWrapped):

  • Source/WebCore/bindings/scripts/test/JS/JSTestEnabledForContext.cpp:

(WebCore::JSTestEnabledForContext::finishCreation):
(WebCore::JSC_DEFINE_CUSTOM_GETTER):
(WebCore::JSTestEnabledForContext::toWrapped):

  • Source/WebCore/bindings/scripts/test/JS/JSTestEventConstructor.cpp:

(WebCore::JSTestEventConstructor::finishCreation):
(WebCore::JSC_DEFINE_CUSTOM_GETTER):

  • Source/WebCore/bindings/scripts/test/JS/JSTestEventTarget.cpp:

(WebCore::JSTestEventTarget::finishCreation):
(WebCore::JSC_DEFINE_CUSTOM_GETTER):
(WebCore::JSTestEventTarget::toWrapped):

  • Source/WebCore/bindings/scripts/test/JS/JSTestException.cpp:

(WebCore::JSTestException::finishCreation):
(WebCore::JSC_DEFINE_CUSTOM_GETTER):
(WebCore::JSTestException::toWrapped):

  • Source/WebCore/bindings/scripts/test/JS/JSTestGenerateAddOpaqueRoot.cpp:

(WebCore::JSTestGenerateAddOpaqueRoot::finishCreation):
(WebCore::JSC_DEFINE_CUSTOM_GETTER):
(WebCore::JSTestGenerateAddOpaqueRoot::toWrapped):

  • Source/WebCore/bindings/scripts/test/JS/JSTestGenerateIsReachable.cpp:

(WebCore::JSTestGenerateIsReachable::finishCreation):
(WebCore::JSC_DEFINE_CUSTOM_GETTER):
(WebCore::JSTestGenerateIsReachable::toWrapped):

  • Source/WebCore/bindings/scripts/test/JS/JSTestGlobalObject.cpp:

(WebCore::JSTestGlobalObjectDOMConstructor::initializeProperties):
(WebCore::JSTestGlobalObject::finishCreation):
(WebCore::JSC_DEFINE_CUSTOM_GETTER):
(WebCore::JSTestGlobalObject::toWrapped):

  • Source/WebCore/bindings/scripts/test/JS/JSTestIndexedSetterNoIdentifier.cpp:

(WebCore::JSTestIndexedSetterNoIdentifier::finishCreation):
(WebCore::JSC_DEFINE_CUSTOM_GETTER):
(WebCore::JSTestIndexedSetterNoIdentifier::toWrapped):

  • Source/WebCore/bindings/scripts/test/JS/JSTestIndexedSetterThrowingException.cpp:

(WebCore::JSTestIndexedSetterThrowingException::finishCreation):
(WebCore::JSC_DEFINE_CUSTOM_GETTER):
(WebCore::JSTestIndexedSetterThrowingException::toWrapped):

  • Source/WebCore/bindings/scripts/test/JS/JSTestIndexedSetterWithIdentifier.cpp:

(WebCore::JSTestIndexedSetterWithIdentifier::finishCreation):
(WebCore::JSC_DEFINE_CUSTOM_GETTER):
(WebCore::JSTestIndexedSetterWithIdentifier::toWrapped):

  • Source/WebCore/bindings/scripts/test/JS/JSTestInterface.cpp:

(WebCore::JSTestInterface::finishCreation):
(WebCore::JSC_DEFINE_CUSTOM_GETTER):
(WebCore::JSTestInterface::toWrapped):

  • Source/WebCore/bindings/scripts/test/JS/JSTestInterfaceLeadingUnderscore.cpp:

(WebCore::JSTestInterfaceLeadingUnderscore::finishCreation):
(WebCore::JSC_DEFINE_CUSTOM_GETTER):
(WebCore::JSTestInterfaceLeadingUnderscore::toWrapped):

  • Source/WebCore/bindings/scripts/test/JS/JSTestIterable.cpp:

(WebCore::JSTestIterable::finishCreation):
(WebCore::JSC_DEFINE_CUSTOM_GETTER):
(WebCore::JSTestIterable::toWrapped):

  • Source/WebCore/bindings/scripts/test/JS/JSTestJSBuiltinConstructor.cpp:

(WebCore::JSTestJSBuiltinConstructor::finishCreation):
(WebCore::JSC_DEFINE_CUSTOM_GETTER):

  • Source/WebCore/bindings/scripts/test/JS/JSTestLegacyFactoryFunction.cpp:

(WebCore::JSTestLegacyFactoryFunction::finishCreation):
(WebCore::JSC_DEFINE_CUSTOM_GETTER):
(WebCore::JSTestLegacyFactoryFunction::toWrapped):

  • Source/WebCore/bindings/scripts/test/JS/JSTestLegacyNoInterfaceObject.cpp:

(WebCore::JSTestLegacyNoInterfaceObject::finishCreation):
(WebCore::JSTestLegacyNoInterfaceObject::toWrapped):

  • Source/WebCore/bindings/scripts/test/JS/JSTestLegacyOverrideBuiltIns.cpp:

(WebCore::JSTestLegacyOverrideBuiltIns::finishCreation):
(WebCore::JSC_DEFINE_CUSTOM_GETTER):
(WebCore::JSTestLegacyOverrideBuiltIns::toWrapped):

  • Source/WebCore/bindings/scripts/test/JS/JSTestMapLike.cpp:

(WebCore::JSTestMapLike::finishCreation):
(WebCore::JSC_DEFINE_CUSTOM_GETTER):
(WebCore::JSTestMapLike::toWrapped):

  • Source/WebCore/bindings/scripts/test/JS/JSTestMapLikeWithOverriddenOperations.cpp:

(WebCore::JSTestMapLikeWithOverriddenOperations::finishCreation):
(WebCore::JSC_DEFINE_CUSTOM_GETTER):
(WebCore::JSTestMapLikeWithOverriddenOperations::toWrapped):

  • Source/WebCore/bindings/scripts/test/JS/JSTestNamedAndIndexedSetterNoIdentifier.cpp:

(WebCore::JSTestNamedAndIndexedSetterNoIdentifier::finishCreation):
(WebCore::JSTestNamedAndIndexedSetterNoIdentifier::put):
(WebCore::JSTestNamedAndIndexedSetterNoIdentifier::putByIndex):
(WebCore::JSC_DEFINE_CUSTOM_GETTER):
(WebCore::JSTestNamedAndIndexedSetterNoIdentifier::toWrapped):

  • Source/WebCore/bindings/scripts/test/JS/JSTestNamedAndIndexedSetterThrowingException.cpp:

(WebCore::JSTestNamedAndIndexedSetterThrowingException::finishCreation):
(WebCore::JSTestNamedAndIndexedSetterThrowingException::put):
(WebCore::JSTestNamedAndIndexedSetterThrowingException::putByIndex):
(WebCore::JSC_DEFINE_CUSTOM_GETTER):
(WebCore::JSTestNamedAndIndexedSetterThrowingException::toWrapped):

  • Source/WebCore/bindings/scripts/test/JS/JSTestNamedAndIndexedSetterWithIdentifier.cpp:

(WebCore::JSTestNamedAndIndexedSetterWithIdentifier::finishCreation):
(WebCore::JSTestNamedAndIndexedSetterWithIdentifier::put):
(WebCore::JSTestNamedAndIndexedSetterWithIdentifier::putByIndex):
(WebCore::JSC_DEFINE_CUSTOM_GETTER):
(WebCore::JSTestNamedAndIndexedSetterWithIdentifier::toWrapped):

  • Source/WebCore/bindings/scripts/test/JS/JSTestNamedDeleterNoIdentifier.cpp:

(WebCore::JSTestNamedDeleterNoIdentifier::finishCreation):
(WebCore::JSC_DEFINE_CUSTOM_GETTER):
(WebCore::JSTestNamedDeleterNoIdentifier::toWrapped):

  • Source/WebCore/bindings/scripts/test/JS/JSTestNamedDeleterThrowingException.cpp:

(WebCore::JSTestNamedDeleterThrowingException::finishCreation):
(WebCore::JSC_DEFINE_CUSTOM_GETTER):
(WebCore::JSTestNamedDeleterThrowingException::toWrapped):

  • Source/WebCore/bindings/scripts/test/JS/JSTestNamedDeleterWithIdentifier.cpp:

(WebCore::JSTestNamedDeleterWithIdentifier::finishCreation):
(WebCore::JSC_DEFINE_CUSTOM_GETTER):
(WebCore::JSTestNamedDeleterWithIdentifier::toWrapped):

  • Source/WebCore/bindings/scripts/test/JS/JSTestNamedDeleterWithIndexedGetter.cpp:

(WebCore::JSTestNamedDeleterWithIndexedGetter::finishCreation):
(WebCore::JSC_DEFINE_CUSTOM_GETTER):
(WebCore::JSTestNamedDeleterWithIndexedGetter::toWrapped):

  • Source/WebCore/bindings/scripts/test/JS/JSTestNamedGetterCallWith.cpp:

(WebCore::JSTestNamedGetterCallWith::finishCreation):
(WebCore::JSC_DEFINE_CUSTOM_GETTER):
(WebCore::JSTestNamedGetterCallWith::toWrapped):

  • Source/WebCore/bindings/scripts/test/JS/JSTestNamedGetterNoIdentifier.cpp:

(WebCore::JSTestNamedGetterNoIdentifier::finishCreation):
(WebCore::JSC_DEFINE_CUSTOM_GETTER):
(WebCore::JSTestNamedGetterNoIdentifier::toWrapped):

  • Source/WebCore/bindings/scripts/test/JS/JSTestNamedGetterWithIdentifier.cpp:

(WebCore::JSTestNamedGetterWithIdentifier::finishCreation):
(WebCore::JSC_DEFINE_CUSTOM_GETTER):
(WebCore::JSTestNamedGetterWithIdentifier::toWrapped):

  • Source/WebCore/bindings/scripts/test/JS/JSTestNamedSetterNoIdentifier.cpp:

(WebCore::JSTestNamedSetterNoIdentifier::finishCreation):
(WebCore::JSTestNamedSetterNoIdentifier::put):
(WebCore::JSTestNamedSetterNoIdentifier::putByIndex):
(WebCore::JSC_DEFINE_CUSTOM_GETTER):
(WebCore::JSTestNamedSetterNoIdentifier::toWrapped):

  • Source/WebCore/bindings/scripts/test/JS/JSTestNamedSetterThrowingException.cpp:

(WebCore::JSTestNamedSetterThrowingException::finishCreation):
(WebCore::JSTestNamedSetterThrowingException::put):
(WebCore::JSTestNamedSetterThrowingException::putByIndex):
(WebCore::JSC_DEFINE_CUSTOM_GETTER):
(WebCore::JSTestNamedSetterThrowingException::toWrapped):

  • Source/WebCore/bindings/scripts/test/JS/JSTestNamedSetterWithIdentifier.cpp:

(WebCore::JSTestNamedSetterWithIdentifier::finishCreation):
(WebCore::JSTestNamedSetterWithIdentifier::put):
(WebCore::JSTestNamedSetterWithIdentifier::putByIndex):
(WebCore::JSC_DEFINE_CUSTOM_GETTER):
(WebCore::JSTestNamedSetterWithIdentifier::toWrapped):

  • Source/WebCore/bindings/scripts/test/JS/JSTestNamedSetterWithIndexedGetter.cpp:

(WebCore::JSTestNamedSetterWithIndexedGetter::finishCreation):
(WebCore::JSTestNamedSetterWithIndexedGetter::put):
(WebCore::JSTestNamedSetterWithIndexedGetter::putByIndex):
(WebCore::JSC_DEFINE_CUSTOM_GETTER):
(WebCore::JSTestNamedSetterWithIndexedGetter::toWrapped):

  • Source/WebCore/bindings/scripts/test/JS/JSTestNamedSetterWithIndexedGetterAndSetter.cpp:

(WebCore::JSTestNamedSetterWithIndexedGetterAndSetter::finishCreation):
(WebCore::JSTestNamedSetterWithIndexedGetterAndSetter::put):
(WebCore::JSTestNamedSetterWithIndexedGetterAndSetter::putByIndex):
(WebCore::JSC_DEFINE_CUSTOM_GETTER):
(WebCore::JSTestNamedSetterWithIndexedGetterAndSetter::toWrapped):

  • Source/WebCore/bindings/scripts/test/JS/JSTestNamedSetterWithLegacyOverrideBuiltIns.cpp:

(WebCore::JSTestNamedSetterWithLegacyOverrideBuiltIns::finishCreation):
(WebCore::JSC_DEFINE_CUSTOM_GETTER):
(WebCore::JSTestNamedSetterWithLegacyOverrideBuiltIns::toWrapped):

  • Source/WebCore/bindings/scripts/test/JS/JSTestNamedSetterWithLegacyUnforgeableProperties.cpp:

(WebCore::JSTestNamedSetterWithLegacyUnforgeableProperties::finishCreation):
(WebCore::JSTestNamedSetterWithLegacyUnforgeableProperties::put):
(WebCore::JSTestNamedSetterWithLegacyUnforgeableProperties::putByIndex):
(WebCore::JSC_DEFINE_CUSTOM_GETTER):
(WebCore::JSTestNamedSetterWithLegacyUnforgeableProperties::toWrapped):

  • Source/WebCore/bindings/scripts/test/JS/JSTestNamedSetterWithLegacyUnforgeablePropertiesAndLegacyOverrideBuiltIns.cpp:

(WebCore::JSTestNamedSetterWithLegacyUnforgeablePropertiesAndLegacyOverrideBuiltIns::finishCreation):
(WebCore::JSC_DEFINE_CUSTOM_GETTER):
(WebCore::JSTestNamedSetterWithLegacyUnforgeablePropertiesAndLegacyOverrideBuiltIns::toWrapped):

  • Source/WebCore/bindings/scripts/test/JS/JSTestNamespaceConst.cpp:

(WebCore::JSTestNamespaceConst::finishCreation):

  • Source/WebCore/bindings/scripts/test/JS/JSTestNamespaceObject.cpp:

(WebCore::JSTestNamespaceObject::finishCreation):

  • Source/WebCore/bindings/scripts/test/JS/JSTestNode.cpp:

(WebCore::JSTestNode::finishCreation):
(WebCore::JSC_DEFINE_CUSTOM_GETTER):

  • Source/WebCore/bindings/scripts/test/JS/JSTestObj.cpp:

(WebCore::JSTestObj::finishCreation):
(WebCore::JSC_DEFINE_CUSTOM_GETTER):
(WebCore::setJSTestObj_putForwardsAttributeSetter):
(WebCore::setJSTestObj_putForwardsNullableAttributeSetter):
(WebCore::jsTestObjPrototypeFunction_overloadedMethodOverloadDispatcher):
(WebCore::jsTestObjPrototypeFunction_overloadedMethodWithOptionalParameterOverloadDispatcher):
(WebCore::jsTestObjPrototypeFunction_overloadedMethodWithDistinguishingUnionOverloadDispatcher):
(WebCore::jsTestObjPrototypeFunction_overloadedMethodWith2DistinguishingUnionsOverloadDispatcher):
(WebCore::jsTestObjPrototypeFunction_overloadedMethodWithNonDistinguishingUnionOverloadDispatcher):
(WebCore::jsTestObjPrototypeFunction_overloadWithNullableUnionOverloadDispatcher):
(WebCore::jsTestObjPrototypeFunction_overloadWithNullableNonDistinguishingParameterOverloadDispatcher):
(WebCore::jsTestObjPrototypeFunction_testPromiseOverloadedFunctionOverloadDispatcher):
(WebCore::JSTestObj::toWrapped):

  • Source/WebCore/bindings/scripts/test/JS/JSTestOperationConditional.cpp:

(WebCore::JSTestOperationConditional::finishCreation):
(WebCore::JSC_DEFINE_CUSTOM_GETTER):
(WebCore::JSTestOperationConditional::toWrapped):

  • Source/WebCore/bindings/scripts/test/JS/JSTestOverloadedConstructors.cpp:

(WebCore::JSTestOverloadedConstructorsDOMConstructor::construct):
(WebCore::JSTestOverloadedConstructors::finishCreation):
(WebCore::JSC_DEFINE_CUSTOM_GETTER):
(WebCore::JSTestOverloadedConstructors::toWrapped):

  • Source/WebCore/bindings/scripts/test/JS/JSTestOverloadedConstructorsWithSequence.cpp:

(WebCore::JSTestOverloadedConstructorsWithSequence::finishCreation):
(WebCore::JSC_DEFINE_CUSTOM_GETTER):
(WebCore::JSTestOverloadedConstructorsWithSequence::toWrapped):

  • Source/WebCore/bindings/scripts/test/JS/JSTestPluginInterface.cpp:

(WebCore::JSTestPluginInterface::finishCreation):
(WebCore::JSC_DEFINE_CUSTOM_GETTER):
(WebCore::JSTestPluginInterface::toWrapped):

  • Source/WebCore/bindings/scripts/test/JS/JSTestPromiseRejectionEvent.cpp:

(WebCore::JSTestPromiseRejectionEvent::finishCreation):
(WebCore::JSC_DEFINE_CUSTOM_GETTER):

  • Source/WebCore/bindings/scripts/test/JS/JSTestReadOnlyMapLike.cpp:

(WebCore::JSTestReadOnlyMapLike::finishCreation):
(WebCore::JSC_DEFINE_CUSTOM_GETTER):
(WebCore::JSTestReadOnlyMapLike::toWrapped):

  • Source/WebCore/bindings/scripts/test/JS/JSTestReadOnlySetLike.cpp:

(WebCore::JSTestReadOnlySetLike::finishCreation):
(WebCore::JSC_DEFINE_CUSTOM_GETTER):
(WebCore::JSTestReadOnlySetLike::toWrapped):

  • Source/WebCore/bindings/scripts/test/JS/JSTestReportExtraMemoryCost.cpp:

(WebCore::JSTestReportExtraMemoryCost::finishCreation):
(WebCore::JSC_DEFINE_CUSTOM_GETTER):
(WebCore::JSTestReportExtraMemoryCost::toWrapped):

  • Source/WebCore/bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp:

(WebCore::JSTestSerializedScriptValueInterface::finishCreation):
(WebCore::JSC_DEFINE_CUSTOM_GETTER):
(WebCore::JSTestSerializedScriptValueInterface::toWrapped):

  • Source/WebCore/bindings/scripts/test/JS/JSTestSetLike.cpp:

(WebCore::JSTestSetLike::finishCreation):
(WebCore::JSC_DEFINE_CUSTOM_GETTER):
(WebCore::JSTestSetLike::toWrapped):

  • Source/WebCore/bindings/scripts/test/JS/JSTestSetLikeWithOverriddenOperations.cpp:

(WebCore::JSTestSetLikeWithOverriddenOperations::finishCreation):
(WebCore::JSC_DEFINE_CUSTOM_GETTER):
(WebCore::JSTestSetLikeWithOverriddenOperations::toWrapped):

  • Source/WebCore/bindings/scripts/test/JS/JSTestStringifier.cpp:

(WebCore::JSTestStringifier::finishCreation):
(WebCore::JSC_DEFINE_CUSTOM_GETTER):
(WebCore::JSTestStringifier::toWrapped):

  • Source/WebCore/bindings/scripts/test/JS/JSTestStringifierAnonymousOperation.cpp:

(WebCore::JSTestStringifierAnonymousOperation::finishCreation):
(WebCore::JSC_DEFINE_CUSTOM_GETTER):
(WebCore::JSTestStringifierAnonymousOperation::toWrapped):

  • Source/WebCore/bindings/scripts/test/JS/JSTestStringifierNamedOperation.cpp:

(WebCore::JSTestStringifierNamedOperation::finishCreation):
(WebCore::JSC_DEFINE_CUSTOM_GETTER):
(WebCore::JSTestStringifierNamedOperation::toWrapped):

  • Source/WebCore/bindings/scripts/test/JS/JSTestStringifierOperationImplementedAs.cpp:

(WebCore::JSTestStringifierOperationImplementedAs::finishCreation):
(WebCore::JSC_DEFINE_CUSTOM_GETTER):
(WebCore::JSTestStringifierOperationImplementedAs::toWrapped):

  • Source/WebCore/bindings/scripts/test/JS/JSTestStringifierOperationNamedToString.cpp:

(WebCore::JSTestStringifierOperationNamedToString::finishCreation):
(WebCore::JSC_DEFINE_CUSTOM_GETTER):
(WebCore::JSTestStringifierOperationNamedToString::toWrapped):

  • Source/WebCore/bindings/scripts/test/JS/JSTestStringifierReadOnlyAttribute.cpp:

(WebCore::JSTestStringifierReadOnlyAttribute::finishCreation):
(WebCore::JSC_DEFINE_CUSTOM_GETTER):
(WebCore::JSTestStringifierReadOnlyAttribute::toWrapped):

  • Source/WebCore/bindings/scripts/test/JS/JSTestStringifierReadWriteAttribute.cpp:

(WebCore::JSTestStringifierReadWriteAttribute::finishCreation):
(WebCore::JSC_DEFINE_CUSTOM_GETTER):
(WebCore::JSTestStringifierReadWriteAttribute::toWrapped):

  • Source/WebCore/bindings/scripts/test/JS/JSTestTaggedWrapper.cpp:

(WebCore::JSTestTaggedWrapper::finishCreation):
(WebCore::JSC_DEFINE_CUSTOM_GETTER):
(WebCore::JSTestTaggedWrapper::toWrapped):

  • Source/WebCore/bindings/scripts/test/JS/JSTestTypedefs.cpp:

(WebCore::JSTestTypedefs::finishCreation):
(WebCore::JSC_DEFINE_CUSTOM_GETTER):
(WebCore::JSTestTypedefs::toWrapped):

  • Source/WebCore/bindings/scripts/test/JS/JSTestVoidCallbackFunction.cpp:

(WebCore::JSTestVoidCallbackFunction::JSTestVoidCallbackFunction):

  • Source/WebCore/bindings/scripts/test/JS/JSWorkerGlobalScope.cpp:

(WebCore::JSC_DEFINE_CUSTOM_GETTER):
(WebCore::JSWorkerGlobalScope::toWrapped):

  • Source/WebCore/bindings/scripts/test/JS/JSWorkletGlobalScope.cpp:

(WebCore::JSC_DEFINE_CUSTOM_GETTER):
(WebCore::JSWorkletGlobalScope::toWrapped):

  • Source/WebCore/bridge/objc/ObjCRuntimeObject.mm:

(JSC::Bindings::ObjCRuntimeObject::finishCreation):

  • Source/WebCore/bridge/objc/WebScriptObject.mm:

(-[WebScriptObject _isSafeScript]):
(-[WebScriptObject callWebScriptMethod:withArguments:]):
(-[WebScriptObject setValue:forKey:]):
(-[WebScriptObject setWebScriptValueAtIndex:value:]):
(+[WebScriptObject _convertValueToObjcValue:originRootObject:rootObject:]):

  • Source/WebCore/bridge/objc/objc_instance.mm:

(JSC::Bindings::ObjcInstance::getMethod):
(JSC::Bindings::ObjcInstance::invokeMethod):

  • Source/WebCore/bridge/objc/objc_runtime.mm:

(JSC::Bindings::ObjcFallbackObjectImp::finishCreation):
(JSC::Bindings::JSC_DEFINE_HOST_FUNCTION):

  • Source/WebCore/bridge/runtime_array.cpp:

(JSC::RuntimeArray::finishCreation):
(JSC::JSC_DEFINE_CUSTOM_GETTER):

  • Source/WebCore/bridge/runtime_method.cpp:

(JSC::RuntimeMethod::finishCreation):
(JSC::JSC_DEFINE_CUSTOM_GETTER):
(JSC::JSC_DEFINE_HOST_FUNCTION):

  • Source/WebCore/bridge/runtime_object.cpp:

(JSC::Bindings::RuntimeObject::finishCreation):
(JSC::Bindings::JSC_DEFINE_HOST_FUNCTION):

  • Source/WebCore/html/HTMLMediaElement.cpp:

(WebCore::controllerJSValue):
(WebCore::HTMLMediaElement::updateCaptionContainer):
(WebCore::HTMLMediaElement::ensureMediaControlsInjectedScript):
(WebCore::HTMLMediaElement::setControllerJSProperty):
(WebCore::HTMLMediaElement::didAddUserAgentShadowRoot):
(WebCore::HTMLMediaElement::updateMediaControlsAfterPresentationModeChange):
(WebCore::HTMLMediaElement::getCurrentMediaControlsStatus):

  • Source/WebCore/html/PDFDocument.cpp:

(WebCore::PDFDocument::sendPDFArrayBuffer):

  • Source/WebCore/inspector/InspectorController.cpp:

(WebCore::InspectorController::canAccessInspectedScriptState const):

  • Source/WebCore/inspector/InspectorFrontendAPIDispatcher.cpp:

(WebCore::InspectorFrontendAPIDispatcher::evaluateOrQueueExpression):

  • Source/WebCore/inspector/WebInjectedScriptHost.cpp:

(WebCore::WebInjectedScriptHost::subtype):
(WebCore::WebInjectedScriptHost::isHTMLAllCollection):

  • Source/WebCore/inspector/agents/InspectorDOMAgent.cpp:

(WebCore::InspectorDOMAgent::buildObjectForEventListener):

  • Source/WebCore/page/Frame.cpp:

(WebCore::Frame::fromJSContext):
(WebCore::Frame::contentFrameFromWindowOrFrameElement):

  • Source/WebCore/page/WindowOrWorkerGlobalScope.cpp:

(WebCore::WindowOrWorkerGlobalScope::reportError):

  • Source/WebCore/testing/Internals.cpp:

(WebCore::Internals::parserMetaData):
(WebCore::Internals::cloneArrayBuffer):

  • Source/WebCore/workers/WorkerOrWorkletScriptController.cpp:

(WebCore::WorkerOrWorkletScriptController::loadAndEvaluateModule):
(WebCore::WorkerOrWorkletScriptController::initScriptWithSubclass):

  • Source/WebCore/worklets/PaintWorkletGlobalScope.cpp:

(WebCore::PaintWorkletGlobalScope::registerPaint):

Canonical link: https://commits.webkit.org/249694@main

File size: 45.8 KB
Line 
1/*
2 * Copyright (C) 2012-2020 Apple Inc. All rights reserved.
3 *
4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions
6 * are met:
7 * 1. Redistributions of source code must retain the above copyright
8 * notice, this list of conditions and the following disclaimer.
9 * 2. Redistributions in binary form must reproduce the above copyright
10 * notice, this list of conditions and the following disclaimer in the
11 * documentation and/or other materials provided with the distribution.
12 *
13 * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
14 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
15 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
16 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR
17 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
18 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
19 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
20 * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
21 * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
22 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
23 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
24 */
25
26#include "config.h"
27#include "DFGValidate.h"
28
29#if ENABLE(DFG_JIT)
30
31#include "ButterflyInlines.h"
32#include "CacheableIdentifierInlines.h"
33#include "DFGClobberize.h"
34#include "DFGClobbersExitState.h"
35#include "DFGDominators.h"
36#include "DFGMayExit.h"
37#include "DFGOSRAvailabilityAnalysisPhase.h"
38#include <wtf/Assertions.h>
39
40namespace JSC { namespace DFG {
41
42namespace {
43
44class Validate {
45public:
46 Validate(Graph& graph, GraphDumpMode graphDumpMode, CString graphDumpBeforePhase)
47 : m_graph(graph)
48 , m_graphDumpMode(graphDumpMode)
49 , m_graphDumpBeforePhase(graphDumpBeforePhase)
50 {
51 }
52
53 #define VALIDATE(context, assertion) do { \
54 if (!(assertion)) { \
55 startCrashing(); \
56 dataLogF("\n\n\nAt "); \
57 reportValidationContext context; \
58 dataLogF(": validation failed: %s (%s:%d).\n", #assertion, __FILE__, __LINE__); \
59 dumpGraphIfAppropriate(); \
60 WTFReportAssertionFailure(__FILE__, __LINE__, WTF_PRETTY_FUNCTION, #assertion); \
61 CRASH(); \
62 } \
63 } while (0)
64
65 #define V_EQUAL(context, left, right) do { \
66 if (left != right) { \
67 startCrashing(); \
68 dataLogF("\n\n\nAt "); \
69 reportValidationContext context; \
70 dataLogF(": validation failed: (%s = ", #left); \
71 dataLog(left); \
72 dataLogF(") == (%s = ", #right); \
73 dataLog(right); \
74 dataLogF(") (%s:%d).\n", __FILE__, __LINE__); \
75 dataLog("\n\n\n"); \
76 m_graph.baselineCodeBlockFor(nullptr)->dumpBytecode(); \
77 dumpGraphIfAppropriate(); \
78 WTFReportAssertionFailure(__FILE__, __LINE__, WTF_PRETTY_FUNCTION, #left " == " #right); \
79 CRASH(); \
80 } \
81 } while (0)
82
83 #define notSet (static_cast<size_t>(-1))
84
85 void validate()
86 {
87 if (m_graph.m_isValidating)
88 return;
89
90 auto isValidating = SetForScope(m_graph.m_isValidating, true);
91
92 // NB. This code is not written for performance, since it is not intended to run
93 // in release builds.
94
95 VALIDATE((m_graph.block(0)), m_graph.isRoot(m_graph.block(0)));
96 VALIDATE((m_graph.block(0)), m_graph.block(0) == m_graph.m_roots[0]);
97
98 for (BasicBlock* block : m_graph.m_roots)
99 VALIDATE((block), block->predecessors.isEmpty());
100
101 // Validate that all local variables at the head of all entrypoints are dead.
102 for (BasicBlock* entrypoint : m_graph.m_roots) {
103 for (unsigned i = 0; i < entrypoint->variablesAtHead.numberOfLocals(); ++i)
104 V_EQUAL((virtualRegisterForLocal(i), entrypoint), static_cast<Node*>(nullptr), entrypoint->variablesAtHead.local(i));
105 }
106
107 // Validate ref counts and uses.
108 for (BlockIndex blockIndex = 0; blockIndex < m_graph.numBlocks(); ++blockIndex) {
109 BasicBlock* block = m_graph.block(blockIndex);
110 if (!block)
111 continue;
112 VALIDATE((block), block->isReachable);
113 for (size_t i = 0; i < block->numNodes(); ++i)
114 m_myRefCounts.add(block->node(i), 0);
115 }
116 for (BlockIndex blockIndex = 0; blockIndex < m_graph.numBlocks(); ++blockIndex) {
117 BasicBlock* block = m_graph.block(blockIndex);
118 if (!block)
119 continue;
120 for (size_t i = 0; i < block->numNodes(); ++i) {
121 Node* node = block->node(i);
122 m_acceptableNodes.add(node);
123 if (!node->shouldGenerate())
124 continue;
125 if (node->op() == Upsilon) {
126 VALIDATE((node), m_graph.m_form == SSA);
127 if (node->phi()->shouldGenerate())
128 m_myRefCounts.find(node)->value++;
129 }
130 for (unsigned j = 0; j < m_graph.numChildren(node); ++j) {
131 // Phi children in LoadStore form are invalid.
132 if (m_graph.m_form == LoadStore && block->isPhiIndex(i))
133 continue;
134
135 Edge edge = m_graph.child(node, j);
136 if (!edge)
137 continue;
138
139 m_myRefCounts.find(edge.node())->value++;
140
141 validateEdgeWithDoubleResultIfNecessary(node, edge);
142 validateEdgeWithInt52ResultIfNecessary(node, edge);
143
144 if (m_graph.m_form == SSA) {
145 // In SSA, all edges must hasResult().
146 VALIDATE((node, edge), edge->hasResult());
147 continue;
148 }
149
150 // Unless I'm a Flush, Phantom, GetLocal, or Phi, my children should hasResult().
151 switch (node->op()) {
152 case Flush:
153 case GetLocal:
154 VALIDATE((node, edge), edge->hasVariableAccessData(m_graph));
155 VALIDATE((node, edge), edge->variableAccessData() == node->variableAccessData());
156 break;
157 case PhantomLocal:
158 VALIDATE((node, edge), edge->hasVariableAccessData(m_graph));
159 VALIDATE((node, edge), edge->variableAccessData() == node->variableAccessData());
160 VALIDATE((node, edge), edge->op() != SetLocal);
161 break;
162 case Phi:
163 VALIDATE((node, edge), edge->hasVariableAccessData(m_graph));
164 if (m_graph.m_unificationState == LocallyUnified)
165 break;
166 VALIDATE((node, edge), edge->variableAccessData() == node->variableAccessData());
167 break;
168 default:
169 VALIDATE((node, edge), edge->hasResult());
170 break;
171 }
172 }
173 }
174 }
175
176 for (BlockIndex blockIndex = 0; blockIndex < m_graph.numBlocks(); ++blockIndex) {
177 BasicBlock* block = m_graph.block(blockIndex);
178 if (!block)
179 continue;
180 for (size_t i = 0; i < block->numNodes(); ++i) {
181 Node* node = block->node(i);
182 if (m_graph.m_refCountState == ExactRefCount)
183 V_EQUAL((node), m_myRefCounts.get(node), node->adjustedRefCount());
184 }
185
186 bool foundTerminal = false;
187 for (size_t i = 0 ; i < block->size(); ++i) {
188 Node* node = block->at(i);
189 if (node->isTerminal()) {
190 foundTerminal = true;
191 for (size_t j = i + 1; j < block->size(); ++j) {
192 node = block->at(j);
193 VALIDATE((node), node->op() == Phantom || node->op() == PhantomLocal || node->op() == Flush || node->op() == Check);
194 m_graph.doToChildren(
195 node,
196 [&] (Edge edge) {
197 VALIDATE((node, edge), shouldNotHaveTypeCheck(edge.useKind()));
198 });
199 }
200 break;
201 }
202 }
203 VALIDATE((block), foundTerminal);
204
205 for (size_t i = 0; i < block->size(); ++i) {
206 Node* node = block->at(i);
207
208 VALIDATE((node), node->origin.isSet());
209 VALIDATE((node), node->origin.semantic.isSet() == node->origin.forExit.isSet());
210 VALIDATE((node), !(!node->origin.forExit.isSet() && node->origin.exitOK));
211 VALIDATE((node), !(mayExit(m_graph, node) == Exits && !node->origin.exitOK));
212
213 if (i) {
214 Node* previousNode = block->at(i - 1);
215 VALIDATE(
216 (node),
217 !clobbersExitState(m_graph, previousNode)
218 || !node->origin.exitOK
219 || node->op() == ExitOK
220 || node->origin.forExit != previousNode->origin.forExit);
221 VALIDATE(
222 (node),
223 !(!previousNode->origin.exitOK && node->origin.exitOK)
224 || node->op() == ExitOK
225 || node->origin.forExit != previousNode->origin.forExit);
226 }
227
228 VALIDATE((node), !node->hasStructure() || !!node->structure().get());
229 VALIDATE((node), !node->hasCellOperand() || node->cellOperand()->value().isCell());
230 VALIDATE((node), !node->hasCellOperand() || !!node->cellOperand()->value());
231
232 if (!(node->flags() & NodeHasVarArgs)) {
233 if (!node->child2())
234 VALIDATE((node), !node->child3());
235 if (!node->child1())
236 VALIDATE((node), !node->child2());
237 }
238
239 if (node->hasCacheableIdentifier()) {
240 auto* uid = node->cacheableIdentifier().uid();
241 VALIDATE((node), uid->isSymbol() || !parseIndex(*uid));
242 }
243
244 switch (node->op()) {
245 case Identity:
246 case IdentityWithProfile:
247 VALIDATE((node), canonicalResultRepresentation(node->result()) == canonicalResultRepresentation(node->child1()->result()));
248 break;
249 case SetLocal:
250 case PutStack:
251 case Upsilon:
252 VALIDATE((node), !!node->child1());
253 switch (node->child1().useKind()) {
254 case UntypedUse:
255 case CellUse:
256 case KnownCellUse:
257 case Int32Use:
258 case KnownInt32Use:
259 case Int52RepUse:
260 case DoubleRepUse:
261 case BooleanUse:
262 case KnownBooleanUse:
263 break;
264 default:
265 VALIDATE((node), !"Bad use kind");
266 break;
267 }
268 break;
269 case MakeRope:
270 case ValueAdd:
271 case ValueSub:
272 case ValueMul:
273 case ValueDiv:
274 case ValueMod:
275 case ValuePow:
276 case ArithAdd:
277 case ArithSub:
278 case ArithMul:
279 case ArithIMul:
280 case ArithDiv:
281 case ArithMod:
282 case ArithMin:
283 case ArithMax:
284 case ArithPow:
285 case CompareLess:
286 case CompareLessEq:
287 case CompareGreater:
288 case CompareGreaterEq:
289 case CompareBelow:
290 case CompareBelowEq:
291 case CompareEq:
292 case CompareStrictEq:
293 case SameValue:
294 case StrCat:
295 VALIDATE((node), !!node->child1());
296 VALIDATE((node), !!node->child2());
297 break;
298 case CompareEqPtr:
299 VALIDATE((node), !!node->child1());
300 VALIDATE((node), !!node->cellOperand()->value() && node->cellOperand()->value().isCell());
301 break;
302 case CheckArrayOrEmpty:
303 VALIDATE((node), is64Bit());
304 VALIDATE((node), !!node->child1());
305 VALIDATE((node), node->child1().useKind() == CellUse);
306 break;
307 case CheckStructureOrEmpty:
308 VALIDATE((node), is64Bit());
309 VALIDATE((node), !!node->child1());
310 VALIDATE((node), node->child1().useKind() == CellUse);
311 break;
312 case CheckStructure:
313 case StringFromCharCode:
314 VALIDATE((node), !!node->child1());
315 break;
316 case PutStructure:
317 VALIDATE((node), !node->transition()->previous->dfgShouldWatch());
318 break;
319 case MultiPutByOffset:
320 for (unsigned i = node->multiPutByOffsetData().variants.size(); i--;) {
321 const PutByVariant& variant = node->multiPutByOffsetData().variants[i];
322 if (variant.kind() != PutByVariant::Transition)
323 continue;
324 VALIDATE((node), !variant.oldStructureForTransition()->dfgShouldWatch());
325 }
326 break;
327 case MultiDeleteByOffset:
328 for (unsigned i = node->multiDeleteByOffsetData().variants.size(); i--;) {
329 const DeleteByVariant& variant = node->multiDeleteByOffsetData().variants[i];
330 VALIDATE((node), !variant.newStructure() || !variant.oldStructure()->dfgShouldWatch());
331 }
332 break;
333 case MaterializeNewObject:
334 for (RegisteredStructure structure : node->structureSet()) {
335 // This only supports structures that are JSFinalObject or JSArray.
336 VALIDATE(
337 (node),
338 structure->classInfoForCells() == JSFinalObject::info()
339 || structure->classInfoForCells() == JSArray::info());
340
341 // We only support certain indexing shapes.
342 VALIDATE((node), !hasAnyArrayStorage(structure->indexingType()));
343 }
344 break;
345 case DoubleConstant:
346 case Int52Constant:
347 VALIDATE((node), node->isNumberConstant());
348 break;
349 case GetByOffset:
350 case PutByOffset:
351 // FIXME: We should be able to validate that GetByOffset and PutByOffset are
352 // using the same object for storage and base. I think this means finally
353 // splitting these nodes into two node types, one for inline and one for
354 // out-of-line. The out-of-line one will require that the first node is storage,
355 // while the inline one will not take a storage child at all.
356 // https://bugs.webkit.org/show_bug.cgi?id=159602
357 break;
358 case HasOwnProperty: {
359 VALIDATE((node), !!m_graph.m_vm.hasOwnPropertyCache());
360 break;
361 }
362 case GetVectorLength: {
363 Array::Type type = node->arrayMode().type();
364 VALIDATE((node), type == Array::ArrayStorage || type == Array::SlowPutArrayStorage);
365 break;
366 }
367 case CPUIntrinsic: {
368 switch (node->intrinsic()) {
369 case CPUMfenceIntrinsic:
370 case CPURdtscIntrinsic:
371 case CPUCpuidIntrinsic:
372 case CPUPauseIntrinsic:
373 break;
374 default:
375 VALIDATE((node), false);
376 break;
377 }
378 break;
379 }
380 case GetArgumentCountIncludingThis: {
381 if (InlineCallFrame* inlineCallFrame = node->argumentsInlineCallFrame())
382 VALIDATE((node), inlineCallFrame->isVarargs());
383 break;
384 }
385 case GetIndexedPropertyStorage:
386 VALIDATE((node), node->arrayMode().type() != Array::String);
387 break;
388 case NewArray:
389 VALIDATE((node), node->vectorLengthHint() >= node->numChildren());
390 break;
391 case NewArrayBuffer:
392 VALIDATE((node), node->vectorLengthHint() >= node->castOperand<JSImmutableButterfly*>()->length());
393 break;
394 case GetByVal:
395 switch (node->arrayMode().type()) {
396 case Array::Int32:
397 case Array::Double:
398 case Array::Contiguous:
399 // We rely on being an original array structure because we are SaneChain, and we need
400 // Array.prototype to be our prototype, so we can return undefined when we go OOB.
401 if (node->arrayMode().isOutOfBoundsSaneChain())
402 VALIDATE((node), node->arrayMode().isJSArrayWithOriginalStructure());
403 break;
404 default:
405 break;
406 }
407 break;
408 default:
409 break;
410 }
411 }
412 }
413
414 switch (m_graph.m_form) {
415 case LoadStore:
416 case ThreadedCPS:
417 validateCPS();
418 break;
419
420 case SSA:
421 validateSSA();
422 break;
423 }
424
425 // Validate clobbered states.
426 struct DefLambdaAdaptor {
427 Function<void(PureValue)> pureValue;
428 Function<void(HeapLocation, LazyNode)> locationAndNode;
429
430 void operator()(PureValue value) const
431 {
432 pureValue(value);
433 }
434
435 void operator()(HeapLocation location, LazyNode node) const
436 {
437 locationAndNode(location, node);
438 }
439 };
440 for (BasicBlock* block : m_graph.blocksInNaturalOrder()) {
441 for (Node* node : *block) {
442 clobberize(m_graph, node,
443 [&] (AbstractHeap) { },
444 [&] (AbstractHeap heap)
445 {
446 // CSE assumes that HEAP TOP is never written.
447 // If this assumption is weakened, you need to update clobbering
448 // in CSE accordingly.
449 if (heap.kind() == Stack)
450 VALIDATE((node), !heap.payload().isTop());
451 },
452 DefLambdaAdaptor {
453 [&] (PureValue) { },
454 [&] (HeapLocation location, LazyNode)
455 {
456 VALIDATE((node), location.heap().kind() != SideState);
457
458 // More specific kinds should be used instead.
459 VALIDATE((node), location.heap().kind() != World);
460 VALIDATE((node), location.heap().kind() != Heap);
461 }
462 });
463 }
464 }
465
466 for (BasicBlock* block : m_graph.blocksInNaturalOrder()) {
467 // We expect the predecessor list to be de-duplicated.
468 HashSet<BasicBlock*> predecessors;
469 for (BasicBlock* predecessor : block->predecessors)
470 predecessors.add(predecessor);
471 VALIDATE((block), predecessors.size() == block->predecessors.size());
472 }
473 }
474
475private:
476 Graph& m_graph;
477 GraphDumpMode m_graphDumpMode;
478 CString m_graphDumpBeforePhase;
479
480 HashMap<Node*, unsigned> m_myRefCounts;
481 HashSet<Node*> m_acceptableNodes;
482
483 void validateCPS()
484 {
485 VALIDATE((), !m_graph.m_rootToArguments.isEmpty()); // We should have at least one root.
486 VALIDATE((), m_graph.m_rootToArguments.size() == m_graph.m_roots.size());
487 for (BasicBlock* root : m_graph.m_rootToArguments.keys())
488 VALIDATE((), m_graph.m_roots.contains(root));
489
490 for (BlockIndex blockIndex = 0; blockIndex < m_graph.numBlocks(); ++blockIndex) {
491 BasicBlock* block = m_graph.block(blockIndex);
492 if (!block)
493 continue;
494
495 HashSet<Node*> phisInThisBlock;
496 HashSet<Node*> nodesInThisBlock;
497
498 for (size_t i = 0; i < block->numNodes(); ++i) {
499 Node* node = block->node(i);
500 nodesInThisBlock.add(node);
501 if (block->isPhiIndex(i))
502 phisInThisBlock.add(node);
503 for (unsigned j = 0; j < m_graph.numChildren(node); ++j) {
504 Edge edge = m_graph.child(node, j);
505 if (!edge)
506 continue;
507 VALIDATE((node, edge), m_acceptableNodes.contains(edge.node()));
508 }
509 }
510
511 {
512 HashSet<Node*> seenNodes;
513 for (size_t i = 0; i < block->size(); ++i) {
514 Node* node = block->at(i);
515 m_graph.doToChildren(node, [&] (const Edge& edge) {
516 Node* child = edge.node();
517 VALIDATE((node, edge), block->isInPhis(child) || seenNodes.contains(child));
518 });
519 seenNodes.add(node);
520 }
521 }
522
523 for (size_t i = 0; i < block->phis.size(); ++i) {
524 Node* node = block->phis[i];
525 ASSERT(phisInThisBlock.contains(node));
526 VALIDATE((node), node->op() == Phi);
527 Operand operand = node->operand();
528 for (unsigned j = 0; j < m_graph.numChildren(node); ++j) {
529 // Phi children in LoadStore form are invalid.
530 if (m_graph.m_form == LoadStore && block->isPhiIndex(i))
531 continue;
532
533 Edge edge = m_graph.child(node, j);
534 if (!edge)
535 continue;
536
537 VALIDATE(
538 (node, edge),
539 edge->op() == SetLocal
540 || edge->op() == SetArgumentDefinitely
541 || edge->op() == SetArgumentMaybe
542 || edge->op() == Phi);
543
544 if (phisInThisBlock.contains(edge.node()))
545 continue;
546
547 if (nodesInThisBlock.contains(edge.node())) {
548 VALIDATE(
549 (node, edge),
550 edge->op() == SetLocal
551 || edge->op() == SetArgumentDefinitely
552 || edge->op() == SetArgumentMaybe);
553
554 continue;
555 }
556
557 // There must exist a predecessor block that has this node index in
558 // its tail variables.
559 bool found = false;
560 for (unsigned k = 0; k < block->predecessors.size(); ++k) {
561 BasicBlock* prevBlock = block->predecessors[k];
562 VALIDATE((block->predecessors[k]), prevBlock);
563 Node* prevNode = prevBlock->variablesAtTail.operand(operand);
564 // If we have a Phi that is not referring to *this* block then all predecessors
565 // must have that local available.
566 VALIDATE((operand, block, block->predecessors[k]), prevNode);
567 switch (prevNode->op()) {
568 case GetLocal:
569 case Flush:
570 case PhantomLocal:
571 prevNode = prevNode->child1().node();
572 break;
573 default:
574 break;
575 }
576 if (node->shouldGenerate()) {
577 VALIDATE((operand, block->predecessors[k], prevNode),
578 prevNode->shouldGenerate());
579 }
580 VALIDATE(
581 (operand, block->predecessors[k], prevNode),
582 prevNode->op() == SetLocal
583 || prevNode->op() == SetArgumentDefinitely
584 || prevNode->op() == SetArgumentMaybe
585 || prevNode->op() == Phi);
586 if (prevNode == edge.node()) {
587 found = true;
588 break;
589 }
590 // At this point it cannot refer into this block.
591 VALIDATE((operand, block->predecessors[k], prevNode), !prevBlock->isInBlock(edge.node()));
592 }
593
594 VALIDATE((node, edge), found);
595 }
596 }
597
598 Operands<size_t> getLocalPositions(OperandsLike, block->variablesAtHead);
599 Operands<size_t> setLocalPositions(OperandsLike, block->variablesAtHead);
600
601 for (size_t i = 0; i < block->variablesAtHead.numberOfTmps(); ++i) {
602 VALIDATE((Operand::tmp(i), block), !block->variablesAtHead.tmp(i) || block->variablesAtHead.tmp(i)->accessesStack(m_graph));
603 if (m_graph.m_form == ThreadedCPS)
604 VALIDATE((Operand::tmp(i), block), !block->variablesAtTail.tmp(i) || block->variablesAtTail.tmp(i)->accessesStack(m_graph));
605
606 getLocalPositions.tmp(i) = notSet;
607 setLocalPositions.tmp(i) = notSet;
608 }
609 for (size_t i = 0; i < block->variablesAtHead.numberOfArguments(); ++i) {
610 VALIDATE((virtualRegisterForArgumentIncludingThis(i), block), !block->variablesAtHead.argument(i) || block->variablesAtHead.argument(i)->accessesStack(m_graph));
611 if (m_graph.m_form == ThreadedCPS)
612 VALIDATE((virtualRegisterForArgumentIncludingThis(i), block), !block->variablesAtTail.argument(i) || block->variablesAtTail.argument(i)->accessesStack(m_graph));
613
614 getLocalPositions.argument(i) = notSet;
615 setLocalPositions.argument(i) = notSet;
616 }
617 for (size_t i = 0; i < block->variablesAtHead.numberOfLocals(); ++i) {
618 VALIDATE((virtualRegisterForLocal(i), block), !block->variablesAtHead.local(i) || block->variablesAtHead.local(i)->accessesStack(m_graph));
619 if (m_graph.m_form == ThreadedCPS)
620 VALIDATE((virtualRegisterForLocal(i), block), !block->variablesAtTail.local(i) || block->variablesAtTail.local(i)->accessesStack(m_graph));
621
622 getLocalPositions.local(i) = notSet;
623 setLocalPositions.local(i) = notSet;
624 }
625
626 for (size_t i = 0; i < block->size(); ++i) {
627 Node* node = block->at(i);
628 ASSERT(nodesInThisBlock.contains(node));
629 VALIDATE((node), node->op() != Phi);
630 VALIDATE((node), node->origin.forExit.isSet());
631 for (unsigned j = 0; j < m_graph.numChildren(node); ++j) {
632 Edge edge = m_graph.child(node, j);
633 if (!edge)
634 continue;
635 VALIDATE((node, edge), nodesInThisBlock.contains(edge.node()));
636 switch (node->op()) {
637 case PhantomLocal:
638 case GetLocal:
639 case Flush:
640 break;
641 default:
642 VALIDATE((node, edge), !phisInThisBlock.contains(edge.node()));
643 break;
644 }
645 }
646
647 switch (node->op()) {
648 case Phi:
649 case Upsilon:
650 case AssertInBounds:
651 case CheckInBounds:
652 case CheckInBoundsInt52:
653 case PhantomNewObject:
654 case PhantomNewFunction:
655 case PhantomNewGeneratorFunction:
656 case PhantomNewAsyncFunction:
657 case PhantomNewAsyncGeneratorFunction:
658 case PhantomCreateActivation:
659 case PhantomNewRegexp:
660 case GetMyArgumentByVal:
661 case GetMyArgumentByValOutOfBounds:
662 case PutHint:
663 case CheckStructureImmediate:
664 case MaterializeCreateActivation:
665 case PutStack:
666 case KillStack:
667 case GetStack:
668 case EntrySwitch:
669 case InitializeEntrypointArguments:
670 VALIDATE((node), !"unexpected node type in CPS");
671 break;
672 case MaterializeNewObject: {
673 // CPS only allows array lengths to be constant. This constraint only exists
674 // because we don't have DFG support for anything more and we don't need any
675 // other kind of support for now.
676 ObjectMaterializationData& data = node->objectMaterializationData();
677 for (unsigned i = data.m_properties.size(); i--;) {
678 PromotedLocationDescriptor descriptor = data.m_properties[i];
679 Edge edge = m_graph.varArgChild(node, 1 + i);
680 switch (descriptor.kind()) {
681 case PublicLengthPLoc:
682 case VectorLengthPLoc:
683 VALIDATE((node, edge), edge->isInt32Constant());
684 break;
685 default:
686 break;
687 }
688 }
689
690 // CPS only allows one structure.
691 VALIDATE((node), node->structureSet().size() == 1);
692
693 // CPS disallows int32 and double arrays. Those require weird type checks and
694 // conversions. They are not needed in the DFG right now. We should add support
695 // for these if the DFG ever needs it.
696 for (RegisteredStructure structure : node->structureSet()) {
697 VALIDATE((node), !hasInt32(structure->indexingType()));
698 VALIDATE((node), !hasDouble(structure->indexingType()));
699 }
700 break;
701 }
702 case Phantom:
703 VALIDATE((node), m_graph.m_fixpointState != FixpointNotConverged);
704 break;
705 default:
706 break;
707 }
708
709 if (!node->shouldGenerate())
710 continue;
711 switch (node->op()) {
712 case GetLocal:
713 // Ignore GetLocal's that we know to be dead, but that the graph
714 // doesn't yet know to be dead.
715 if (!m_myRefCounts.get(node))
716 break;
717 if (m_graph.m_form == ThreadedCPS) {
718 VALIDATE((node, block), getLocalPositions.operand(node->operand()) == notSet);
719 VALIDATE((node, block), !!node->child1());
720 VALIDATE((node, block), node->child1()->op() == SetArgumentDefinitely || node->child1()->op() == Phi);
721 }
722 getLocalPositions.operand(node->operand()) = i;
723 break;
724 case SetLocal:
725 // Only record the first SetLocal. There may be multiple SetLocals
726 // because of flushing.
727 if (setLocalPositions.operand(node->operand()) != notSet)
728 break;
729 setLocalPositions.operand(node->operand()) = i;
730 break;
731 case SetArgumentDefinitely:
732 // This acts like a reset. It's ok to have a second GetLocal for a local in the same
733 // block if we had a SetArgumentDefinitely for that local.
734 getLocalPositions.operand(node->operand()) = notSet;
735 setLocalPositions.operand(node->operand()) = notSet;
736 break;
737 case SetArgumentMaybe:
738 break;
739 case Flush:
740 case PhantomLocal:
741 if (m_graph.m_form == ThreadedCPS) {
742 VALIDATE((node, block),
743 node->child1()->op() == Phi
744 || node->child1()->op() == SetLocal
745 || node->child1()->op() == SetArgumentDefinitely
746 || node->child1()->op() == SetArgumentMaybe);
747 if (node->op() == PhantomLocal)
748 VALIDATE((node, block), node->child1()->op() != SetArgumentMaybe);
749 }
750 break;
751 default:
752 break;
753 }
754 }
755
756 if (m_graph.m_form == LoadStore)
757 continue;
758
759 for (size_t i = 0; i < block->variablesAtHead.numberOfTmps(); ++i) {
760 checkOperand(
761 block, getLocalPositions, setLocalPositions, Operand::tmp(i));
762 }
763
764 for (size_t i = 0; i < block->variablesAtHead.numberOfArguments(); ++i) {
765 checkOperand(
766 block, getLocalPositions, setLocalPositions, virtualRegisterForArgumentIncludingThis(i));
767 }
768 for (size_t i = 0; i < block->variablesAtHead.numberOfLocals(); ++i) {
769 checkOperand(
770 block, getLocalPositions, setLocalPositions, virtualRegisterForLocal(i));
771 }
772 }
773
774 if (m_graph.m_form == ThreadedCPS) {
775 Vector<Node*> worklist;
776 HashSet<Node*> seen;
777 for (BasicBlock* block : m_graph.blocksInNaturalOrder()) {
778 for (Node* node : *block) {
779 if (node->op() == GetLocal || node->op() == PhantomLocal) {
780 worklist.append(node);
781 auto addResult = seen.add(node);
782 VALIDATE((node, block), addResult.isNewEntry);
783 }
784 }
785 }
786
787 while (worklist.size()) {
788 Node* node = worklist.takeLast();
789 switch (node->op()) {
790 case PhantomLocal:
791 case GetLocal: {
792 Node* child = node->child1().node();
793 if (seen.add(child).isNewEntry)
794 worklist.append(child);
795 break;
796 }
797 case Phi: {
798 for (unsigned i = 0; i < m_graph.numChildren(node); ++i) {
799 Edge edge = m_graph.child(node, i);
800 if (!edge)
801 continue;
802 if (seen.add(edge.node()).isNewEntry)
803 worklist.append(edge.node());
804 }
805 break;
806 }
807 case SetLocal:
808 case SetArgumentDefinitely:
809 break;
810 case SetArgumentMaybe:
811 VALIDATE((node), !"Should not reach SetArgumentMaybe. GetLocal that has data flow that reaches a SetArgumentMaybe is invalid IR.");
812 break;
813 default:
814 VALIDATE((node), !"Unexpected node type.");
815 break;
816 }
817 }
818 }
819 }
820
821 void validateSSA()
822 {
823 // FIXME: Add more things here.
824 // https://bugs.webkit.org/show_bug.cgi?id=123471
825
826 VALIDATE((), m_graph.m_roots.size() == 1);
827 VALIDATE((), m_graph.m_roots[0] == m_graph.block(0));
828 VALIDATE((), !m_graph.m_argumentFormats.isEmpty()); // We always have at least one entrypoint.
829 VALIDATE((), m_graph.m_rootToArguments.isEmpty()); // This is only used in CPS.
830
831 m_graph.initializeNodeOwners();
832
833 auto& dominators = m_graph.ensureSSADominators();
834
835 if (Options::validateFTLOSRExitLiveness())
836 validateOSRExitAvailability(m_graph);
837
838 for (unsigned entrypointIndex : m_graph.m_entrypointIndexToCatchBytecodeIndex.keys())
839 VALIDATE((), entrypointIndex > 0); // By convention, 0 is the entrypoint index for the op_enter entrypoint, which can not be in a catch.
840
841 for (BasicBlock* block : m_graph.blocksInNaturalOrder()) {
842 VALIDATE((block), block->phis.isEmpty());
843
844 bool isOSRExited = false;
845
846 HashSet<Node*> nodesInThisBlock;
847
848 for (auto* node : *block) {
849 switch (node->op()) {
850 case Phi:
851 // Phi cannot exit, and it would be wrong to hoist anything to the Phi that could
852 // exit.
853 VALIDATE((node), !node->origin.exitOK);
854 break;
855
856 case GetLocal:
857 case SetLocal:
858 case SetArgumentDefinitely:
859 case SetArgumentMaybe:
860 case Phantom:
861 VALIDATE((node), !"bad node type for SSA");
862 break;
863
864 default:
865 // FIXME: Add more things here.
866 // https://bugs.webkit.org/show_bug.cgi?id=123471
867 break;
868 }
869
870 if (isOSRExited)
871 continue;
872 switch (node->op()) {
873 case PhantomNewObject:
874 case PhantomNewFunction:
875 case PhantomNewGeneratorFunction:
876 case PhantomNewAsyncFunction:
877 case PhantomNewAsyncGeneratorFunction:
878 case PhantomCreateActivation:
879 case PhantomDirectArguments:
880 case PhantomCreateRest:
881 case PhantomClonedArguments:
882 case PhantomNewRegexp:
883 case MovHint:
884 case Upsilon:
885 case ForwardVarargs:
886 case CallForwardVarargs:
887 case TailCallForwardVarargs:
888 case TailCallForwardVarargsInlinedCaller:
889 case ConstructForwardVarargs:
890 case GetMyArgumentByVal:
891 case GetMyArgumentByValOutOfBounds:
892 break;
893
894 case Check:
895 case CheckVarargs:
896 // FIXME: This is probably not correct.
897 break;
898
899 case PutHint:
900 VALIDATE((node), node->child1()->isPhantomAllocation());
901 break;
902
903 case PhantomSpread:
904 VALIDATE((node), m_graph.m_form == SSA);
905 // We currently support PhantomSpread over PhantomCreateRest and PhantomNewArrayBuffer.
906 VALIDATE((node), node->child1()->op() == PhantomCreateRest || node->child1()->op() == PhantomNewArrayBuffer);
907 break;
908
909 case PhantomNewArrayWithSpread: {
910 VALIDATE((node), m_graph.m_form == SSA);
911 BitVector* bitVector = node->bitVector();
912 for (unsigned i = 0; i < node->numChildren(); i++) {
913 Node* child = m_graph.varArgChild(node, i).node();
914 if (bitVector->get(i)) {
915 // We currently support PhantomSpread over PhantomCreateRest and PhantomNewArrayBuffer.
916 VALIDATE((node), child->op() == PhantomSpread);
917 } else
918 VALIDATE((node), !child->isPhantomAllocation());
919 }
920 break;
921 }
922
923 case PhantomNewArrayBuffer:
924 VALIDATE((node), m_graph.m_form == SSA);
925 VALIDATE((node), node->vectorLengthHint() >= node->castOperand<JSImmutableButterfly*>()->length());
926 break;
927
928 case NewArrayWithSpread: {
929 BitVector* bitVector = node->bitVector();
930 for (unsigned i = 0; i < node->numChildren(); i++) {
931 Node* child = m_graph.varArgChild(node, i).node();
932 if (child->isPhantomAllocation()) {
933 VALIDATE((node), bitVector->get(i));
934 VALIDATE((node), m_graph.m_form == SSA);
935 VALIDATE((node), child->op() == PhantomSpread);
936 }
937 }
938 break;
939 }
940
941 case Spread:
942 VALIDATE((node), !node->child1()->isPhantomAllocation() || node->child1()->op() == PhantomCreateRest || node->child1()->op() == PhantomNewArrayBuffer);
943 break;
944
945 case EntrySwitch:
946 VALIDATE((node), node->entrySwitchData()->cases.size() == m_graph.m_numberOfEntrypoints);
947 break;
948
949 case InitializeEntrypointArguments:
950 VALIDATE((node), node->entrypointIndex() < m_graph.m_numberOfEntrypoints);
951 break;
952
953 default:
954 m_graph.doToChildren(
955 node,
956 [&] (const Edge& edge) {
957 VALIDATE((node), !edge->isPhantomAllocation());
958 });
959 break;
960 }
961
962 isOSRExited |= node->isPseudoTerminal();
963
964 m_graph.doToChildren(node, [&] (Edge child) {
965 VALIDATE((node), dominators.strictlyDominates(child->owner, block) || nodesInThisBlock.contains(child.node()));
966 });
967 nodesInThisBlock.add(node);
968 }
969 }
970 }
971
972 void validateEdgeWithDoubleResultIfNecessary(Node* node, Edge edge)
973 {
974 if (!edge->hasDoubleResult())
975 return;
976
977 if (m_graph.m_planStage < PlanStage::AfterFixup)
978 return;
979
980 VALIDATE((node, edge), edge.useKind() == DoubleRepUse || edge.useKind() == DoubleRepRealUse || edge.useKind() == DoubleRepAnyIntUse);
981 }
982
983 void validateEdgeWithInt52ResultIfNecessary(Node* node, Edge edge)
984 {
985 if (m_graph.m_planStage < PlanStage::AfterFixup)
986 return;
987
988 VALIDATE((node, edge), edge->hasInt52Result() == (edge.useKind() == Int52RepUse));
989 }
990
991 void checkOperand(
992 BasicBlock* block, Operands<size_t>& getLocalPositions,
993 Operands<size_t>& setLocalPositions, Operand operand)
994 {
995 if (getLocalPositions.operand(operand) == notSet)
996 return;
997 if (setLocalPositions.operand(operand) == notSet)
998 return;
999
1000 VALIDATE(
1001 (block->at(getLocalPositions.operand(operand)),
1002 block->at(setLocalPositions.operand(operand)),
1003 block),
1004 getLocalPositions.operand(operand) < setLocalPositions.operand(operand));
1005 }
1006
1007 void reportValidationContext() { }
1008
1009 void reportValidationContext(Node* node)
1010 {
1011 dataLogF("@%u", node->index());
1012 }
1013
1014 void reportValidationContext(BasicBlock* block)
1015 {
1016 dataLog("Block ", *block);
1017 }
1018
1019 void reportValidationContext(Node* node, Edge edge)
1020 {
1021 dataLog(node, " -> ", edge);
1022 }
1023
1024 void reportValidationContext(Operand operand, BasicBlock* block)
1025 {
1026 if (!block) {
1027 dataLog(operand, " in null Block ");
1028 return;
1029 }
1030
1031 dataLog(operand, " in Block ", *block);
1032 }
1033
1034 void reportValidationContext(
1035 Operand operand, BasicBlock* sourceBlock, BasicBlock* destinationBlock)
1036 {
1037 dataLog(operand, " in Block ", *sourceBlock, " -> ", *destinationBlock);
1038 }
1039
1040 void reportValidationContext(
1041 Operand operand, BasicBlock* sourceBlock, Node* prevNode)
1042 {
1043 dataLog(prevNode, " for ", operand, " in Block ", *sourceBlock);
1044 }
1045
1046 void reportValidationContext(Node* node, BasicBlock* block)
1047 {
1048 dataLog(node, " in Block ", *block);
1049 }
1050
1051 void reportValidationContext(Node* node, Node* node2, BasicBlock* block)
1052 {
1053 dataLog(node, " and ", node2, " in Block ", *block);
1054 }
1055
1056 void reportValidationContext(
1057 Node* node, BasicBlock* block, Node* expectedNode, Edge incomingEdge)
1058 {
1059 dataLog(node, " in Block ", *block, ", searching for ", expectedNode, " from ", incomingEdge);
1060 }
1061
1062 void dumpGraphIfAppropriate()
1063 {
1064 if (m_graphDumpMode == DontDumpGraph)
1065 return;
1066 dataLog("\n");
1067 if (!m_graphDumpBeforePhase.isNull()) {
1068 dataLog("Before phase:\n");
1069 dataLog(m_graphDumpBeforePhase);
1070 }
1071 dataLog("At time of failure:\n");
1072 m_graph.dump();
1073 }
1074};
1075
1076} // End anonymous namespace.
1077
1078void validate(Graph& graph, GraphDumpMode graphDumpMode, CString graphDumpBeforePhase)
1079{
1080 Validate validationObject(graph, graphDumpMode, graphDumpBeforePhase);
1081 validationObject.validate();
1082}
1083
1084} } // namespace JSC::DFG
1085
1086#endif // ENABLE(DFG_JIT)
1087
Note: See TracBrowser for help on using the repository browser.