void COMMethodCall::visitChildren(JSCell* cell, SlotVisitor& slotVisitor) { Base::visitChildren(cell, slotVisitor); COMMethodCall* call = jsCast<COMMethodCall*>(cell); slotVisitor.append(call->_parameterCells.begin(), call->_parameterCells.end()); slotVisitor.append(&call->_returnType); }
void JSTestSerializedScriptValueInterface::visitChildren(JSCell* cell, SlotVisitor& visitor) { auto* thisObject = jsCast<JSTestSerializedScriptValueInterface*>(cell); ASSERT_GC_OBJECT_INHERITS(thisObject, info()); Base::visitChildren(thisObject, visitor); visitor.append(&thisObject->m_cachedValue); visitor.append(&thisObject->m_cachedReadonlyValue); }
void JSMapIterator::visitChildren(JSCell* cell, SlotVisitor& visitor) { JSMapIterator* thisObject = jsCast<JSMapIterator*>(cell); ASSERT_GC_OBJECT_INHERITS(thisObject, info()); Base::visitChildren(thisObject, visitor); visitor.append(&thisObject->m_map); visitor.append(&thisObject->m_iter); }
void RegExpObject::visitChildren(JSCell* cell, SlotVisitor& visitor) { RegExpObject* thisObject = jsCast<RegExpObject*>(cell); ASSERT_GC_OBJECT_INHERITS(thisObject, info()); Base::visitChildren(thisObject, visitor); visitor.append(thisObject->m_regExp); visitor.append(thisObject->m_lastIndex); }
void UnlinkedFunctionExecutable::visitChildren(JSCell* cell, SlotVisitor& visitor) { UnlinkedFunctionExecutable* thisObject = jsCast<UnlinkedFunctionExecutable*>(cell); ASSERT_GC_OBJECT_INHERITS(thisObject, info()); Base::visitChildren(thisObject, visitor); visitor.append(&thisObject->m_unlinkedCodeBlockForCall); visitor.append(&thisObject->m_unlinkedCodeBlockForConstruct); }
void JSPropertyNameEnumerator::visitChildren(JSCell* cell, SlotVisitor& visitor) { Base::visitChildren(cell, visitor); JSPropertyNameEnumerator* thisObject = jsCast<JSPropertyNameEnumerator*>(cell); for (unsigned i = 0; i < thisObject->m_propertyNames.size(); ++i) visitor.append(&thisObject->m_propertyNames[i]); visitor.append(&thisObject->m_prototypeChain); }
void JSRopeString::visitFibers(SlotVisitor& visitor) { if (isSubstring()) { visitor.append(substringBase()); return; } for (size_t i = 0; i < s_maxInternalRopeLength && fiber(i); ++i) visitor.append(fiber(i)); }
void JSFunction::visitChildren(JSCell* cell, SlotVisitor& visitor) { JSFunction* thisObject = jsCast<JSFunction*>(cell); ASSERT_GC_OBJECT_INHERITS(thisObject, info()); Base::visitChildren(thisObject, visitor); visitor.append(&thisObject->m_executable); if (thisObject->m_rareData) visitor.append(&thisObject->m_rareData); }
void ModuleProgramExecutable::visitChildren(JSCell* cell, SlotVisitor& visitor) { ModuleProgramExecutable* thisObject = jsCast<ModuleProgramExecutable*>(cell); ASSERT_GC_OBJECT_INHERITS(thisObject, info()); ScriptExecutable::visitChildren(thisObject, visitor); visitor.append(thisObject->m_unlinkedModuleProgramCodeBlock); visitor.append(thisObject->m_moduleEnvironmentSymbolTable); if (ModuleProgramCodeBlock* moduleProgramCodeBlock = thisObject->m_moduleProgramCodeBlock.get()) moduleProgramCodeBlock->visitWeakly(visitor); }
void JSTestSerializedScriptValueInterface::visitChildren(JSCell* cell, SlotVisitor& visitor) { JSTestSerializedScriptValueInterface* thisObject = jsCast<JSTestSerializedScriptValueInterface*>(cell); ASSERT_GC_OBJECT_INHERITS(thisObject, &s_info); COMPILE_ASSERT(StructureFlags & OverridesVisitChildren, OverridesVisitChildrenWithoutSettingFlag); ASSERT(thisObject->structure()->typeInfo().overridesVisitChildren()); Base::visitChildren(thisObject, visitor); visitor.append(&thisObject->m_cachedValue); visitor.append(&thisObject->m_cachedReadonlyValue); }
void JSBoundFunction::visitChildren(JSCell* cell, SlotVisitor& visitor) { JSBoundFunction* thisObject = jsCast<JSBoundFunction*>(cell); ASSERT_GC_OBJECT_INHERITS(thisObject, info()); Base::visitChildren(thisObject, visitor); visitor.append(&thisObject->m_targetFunction); visitor.append(&thisObject->m_boundThis); visitor.append(&thisObject->m_boundArgs); }
void StructureRareData::visitChildren(JSCell* cell, SlotVisitor& visitor) { StructureRareData* thisObject = jsCast<StructureRareData*>(cell); ASSERT_GC_OBJECT_INHERITS(thisObject, info()); JSCell::visitChildren(thisObject, visitor); visitor.append(&thisObject->m_previous); visitor.append(&thisObject->m_objectToStringValue); visitor.append(&thisObject->m_cachedPropertyNameEnumerator); }
void JSFunction::visitChildren(JSCell* cell, SlotVisitor& visitor) { JSFunction* thisObject = jsCast<JSFunction*>(cell); ASSERT_GC_OBJECT_INHERITS(thisObject, &s_info); COMPILE_ASSERT(StructureFlags & OverridesVisitChildren, OverridesVisitChildrenWithoutSettingFlag); ASSERT(thisObject->structure()->typeInfo().overridesVisitChildren()); Base::visitChildren(thisObject, visitor); visitor.append(&thisObject->m_scope); visitor.append(&thisObject->m_executable); }
void JSPromiseDeferred::visitChildren(JSCell* cell, SlotVisitor& visitor) { JSPromiseDeferred* thisObject = jsCast<JSPromiseDeferred*>(cell); ASSERT_GC_OBJECT_INHERITS(thisObject, info()); Base::visitChildren(thisObject, visitor); visitor.append(&thisObject->m_promise); visitor.append(&thisObject->m_resolve); visitor.append(&thisObject->m_reject); }
void SymbolTable::visitChildren(JSCell* thisCell, SlotVisitor& visitor) { SymbolTable* thisSymbolTable = jsCast<SymbolTable*>(thisCell); visitor.append(&thisSymbolTable->m_arguments); visitor.append(&thisSymbolTable->m_singletonScope); // Save some memory. This is O(n) to rebuild and we do so on the fly. ConcurrentJITLocker locker(thisSymbolTable->m_lock); thisSymbolTable->m_localToEntry = nullptr; }
void UnlinkedFunctionExecutable::visitChildren(JSCell* cell, SlotVisitor& visitor) { UnlinkedFunctionExecutable* thisObject = jsCast<UnlinkedFunctionExecutable*>(cell); ASSERT_GC_OBJECT_INHERITS(thisObject, &s_info); COMPILE_ASSERT(StructureFlags & OverridesVisitChildren, OverridesVisitChildrenWithoutSettingFlag); ASSERT(thisObject->structure()->typeInfo().overridesVisitChildren()); Base::visitChildren(thisObject, visitor); visitor.append(&thisObject->m_nameValue); visitor.append(&thisObject->m_symbolTableForCall); visitor.append(&thisObject->m_symbolTableForConstruct); }
void RegExpObject::visitChildren(JSCell* cell, SlotVisitor& visitor) { RegExpObject* thisObject = jsCast<RegExpObject*>(cell); ASSERT_GC_OBJECT_INHERITS(thisObject, &s_info); COMPILE_ASSERT(StructureFlags & OverridesVisitChildren, OverridesVisitChildrenWithoutSettingFlag); ASSERT(thisObject->structure()->typeInfo().overridesVisitChildren()); Base::visitChildren(thisObject, visitor); visitor.append(&thisObject->m_regExp); visitor.append(&thisObject->m_lastIndex); }
void RegExpObject::visitChildren(SlotVisitor& visitor) { ASSERT_GC_OBJECT_INHERITS(this, &s_info); COMPILE_ASSERT(StructureFlags & OverridesVisitChildren, OverridesVisitChildrenWithoutSettingFlag); ASSERT(structure()->typeInfo().overridesVisitChildren()); Base::visitChildren(visitor); if (d->regExp) visitor.append(&d->regExp); if (UNLIKELY(!d->lastIndex.get().isInt32())) visitor.append(&d->lastIndex); }
void RegExpObject::visitChildren(JSCell* cell, SlotVisitor& visitor) { RegExpObject* thisObject = static_cast<RegExpObject*>(cell); ASSERT_GC_OBJECT_INHERITS(thisObject, &s_info); COMPILE_ASSERT(StructureFlags & OverridesVisitChildren, OverridesVisitChildrenWithoutSettingFlag); ASSERT(thisObject->structure()->typeInfo().overridesVisitChildren()); Base::visitChildren(thisObject, visitor); if (thisObject->d->regExp) visitor.append(&thisObject->d->regExp); if (UNLIKELY(!thisObject->d->lastIndex.get().isInt32())) visitor.append(&thisObject->d->lastIndex); }
void ScopeChainNode::visitChildren(JSCell* cell, SlotVisitor& visitor) { ScopeChainNode* thisObject = jsCast<ScopeChainNode*>(cell); ASSERT_GC_OBJECT_INHERITS(thisObject, &s_info); COMPILE_ASSERT(StructureFlags & OverridesVisitChildren, OverridesVisitChildrenWithoutSettingFlag); ASSERT(thisObject->structure()->typeInfo().overridesVisitChildren()); visitor.append(&thisObject->next); visitor.append(&thisObject->object); visitor.append(&thisObject->globalObject); visitor.append(&thisObject->globalThis); }
void FunctionExecutable::visitChildren(JSCell* cell, SlotVisitor& visitor) { FunctionExecutable* thisObject = jsCast<FunctionExecutable*>(cell); ASSERT_GC_OBJECT_INHERITS(thisObject, info()); ScriptExecutable::visitChildren(thisObject, visitor); if (thisObject->m_codeBlockForCall) thisObject->m_codeBlockForCall->visitAggregate(visitor); if (thisObject->m_codeBlockForConstruct) thisObject->m_codeBlockForConstruct->visitAggregate(visitor); visitor.append(&thisObject->m_unlinkedExecutable); visitor.append(&thisObject->m_singletonFunction); }
void GetterSetter::visitChildren(JSCell* cell, SlotVisitor& visitor) { GetterSetter* thisObject = static_cast<GetterSetter*>(cell); ASSERT_GC_OBJECT_INHERITS(thisObject, &s_info); ASSERT(thisObject->structure()->typeInfo().overridesVisitChildren()); JSCell::visitChildren(thisObject, visitor); if (thisObject->m_getter) visitor.append(&thisObject->m_getter); if (thisObject->m_setter) visitor.append(&thisObject->m_setter); }
void JSBoundFunction::visitChildren(JSCell* cell, SlotVisitor& visitor) { JSBoundFunction* thisObject = jsCast<JSBoundFunction*>(cell); ASSERT_GC_OBJECT_INHERITS(thisObject, info()); COMPILE_ASSERT(StructureFlags & OverridesVisitChildren, OverridesVisitChildrenWithoutSettingFlag); ASSERT(thisObject->structure()->typeInfo().overridesVisitChildren()); Base::visitChildren(thisObject, visitor); visitor.append(&thisObject->m_targetFunction); visitor.append(&thisObject->m_boundThis); visitor.append(&thisObject->m_boundArgs); }
void Arguments::visitChildren(JSCell* cell, SlotVisitor& visitor) { Arguments* thisObject = jsCast<Arguments*>(cell); ASSERT_GC_OBJECT_INHERITS(thisObject, info()); COMPILE_ASSERT(StructureFlags & OverridesVisitChildren, OverridesVisitChildrenWithoutSettingFlag); ASSERT(thisObject->structure()->typeInfo().overridesVisitChildren()); JSObject::visitChildren(thisObject, visitor); if (thisObject->m_registerArray) visitor.appendValues(thisObject->m_registerArray.get(), thisObject->m_numArguments); visitor.append(&thisObject->m_callee); visitor.append(&thisObject->m_activation); }
void JSDOMGlobalObject::visitChildren(JSCell* cell, SlotVisitor& visitor) { JSDOMGlobalObject* thisObject = jsCast<JSDOMGlobalObject*>(cell); ASSERT_GC_OBJECT_INHERITS(thisObject, info()); Base::visitChildren(thisObject, visitor); for (auto& structure : thisObject->structures().values()) visitor.append(&structure); for (auto& constructor : thisObject->constructors().values()) visitor.append(&constructor); thisObject->m_builtinInternalFunctions.visit(visitor); }
void JSSymbolTableObject::visitChildren(JSCell* cell, SlotVisitor& visitor) { JSSymbolTableObject* thisObject = jsCast<JSSymbolTableObject*>(cell); ASSERT_GC_OBJECT_INHERITS(thisObject, info()); Base::visitChildren(thisObject, visitor); visitor.append(&thisObject->m_symbolTable); }
void ClonedArguments::visitChildren(JSCell* cell, SlotVisitor& visitor) { ClonedArguments* thisObject = jsCast<ClonedArguments*>(cell); ASSERT_GC_OBJECT_INHERITS(thisObject, info()); Base::visitChildren(thisObject, visitor); visitor.append(&thisObject->m_callee); }
void UnlinkedCodeBlock::visitChildren(JSCell* cell, SlotVisitor& visitor) { UnlinkedCodeBlock* thisObject = jsCast<UnlinkedCodeBlock*>(cell); ASSERT_GC_OBJECT_INHERITS(thisObject, info()); Base::visitChildren(thisObject, visitor); visitor.append(&thisObject->m_symbolTable); for (FunctionExpressionVector::iterator ptr = thisObject->m_functionDecls.begin(), end = thisObject->m_functionDecls.end(); ptr != end; ++ptr) visitor.append(ptr); for (FunctionExpressionVector::iterator ptr = thisObject->m_functionExprs.begin(), end = thisObject->m_functionExprs.end(); ptr != end; ++ptr) visitor.append(ptr); visitor.appendValues(thisObject->m_constantRegisters.data(), thisObject->m_constantRegisters.size()); if (thisObject->m_rareData) { for (size_t i = 0, end = thisObject->m_rareData->m_regexps.size(); i != end; i++) visitor.append(&thisObject->m_rareData->m_regexps[i]); } }
void JSPropertyNameIterator::visitChildren(JSCell* cell, SlotVisitor& visitor) { JSPropertyNameIterator* thisObject = jsCast<JSPropertyNameIterator*>(cell); ASSERT_GC_OBJECT_INHERITS(thisObject, info()); visitor.appendValues(thisObject->m_jsStrings.get(), thisObject->m_jsStringsSize); visitor.append(&thisObject->m_cachedPrototypeChain); }
void JSProxy::visitChildren(JSCell* cell, SlotVisitor& visitor) { JSProxy* thisObject = jsCast<JSProxy*>(cell); ASSERT_GC_OBJECT_INHERITS(thisObject, info()); Base::visitChildren(thisObject, visitor); visitor.append(thisObject->m_target); }