void AdaptiveInferredPropertyValueWatchpoint::fire(const FireDetail& detail) { // One of the watchpoints fired, but the other one didn't. Make sure that neither of them are // in any set anymore. This simplifies things by allowing us to reinstall the watchpoints // wherever from scratch. if (m_structureWatchpoint.isOnList()) m_structureWatchpoint.remove(); if (m_propertyWatchpoint.isOnList()) m_propertyWatchpoint.remove(); if (m_key.isWatchable(PropertyCondition::EnsureWatchability)) { install(); return; } if (DFG::shouldShowDisassembly()) { dataLog( "Firing watchpoint ", RawPointer(this), " (", m_key, ") on ", *m_codeBlock, "\n"); } StringPrintStream out; out.print("Adaptation of ", m_key, " failed: ", detail); StringFireDetail stringDetail(out.toCString().data()); m_codeBlock->jettison( Profiler::JettisonDueToUnprofiledWatchpoint, CountReoptimization, &stringDetail); }
void ObjectToStringAdaptiveInferredPropertyValueWatchpoint::handleFire(const FireDetail& detail) { StringPrintStream out; out.print("Adaptation of ", key(), " failed: ", detail); StringFireDetail stringDetail(out.toCString().data()); m_structureRareData->clearObjectToStringValue(); }
void ObjectToStringAdaptiveStructureWatchpoint::fireInternal(const FireDetail& detail) { if (m_key.isWatchable(PropertyCondition::EnsureWatchability)) { install(); return; } StringPrintStream out; out.print("ObjectToStringValue Adaptation of ", m_key, " failed: ", detail); StringFireDetail stringDetail(out.toCString().data()); m_structureRareData->clearObjectToStringValue(); }
void AdaptiveStructureWatchpoint::fireInternal(const FireDetail& detail) { if (m_key.isWatchable(PropertyCondition::EnsureWatchability)) { install(); return; } if (DFG::shouldDumpDisassembly()) { dataLog( "Firing watchpoint ", RawPointer(this), " (", m_key, ") on ", *m_codeBlock, "\n"); } StringPrintStream out; out.print("Adaptation of ", m_key, " failed: ", detail); StringFireDetail stringDetail(out.toCString().data()); m_codeBlock->jettison( Profiler::JettisonDueToUnprofiledWatchpoint, CountReoptimization, &stringDetail); }