CString ArrayProfile::briefDescription(CodeBlock* codeBlock) { computeUpdatedPrediction(codeBlock); StringPrintStream out; bool hasPrinted = false; if (m_observedArrayModes) { if (hasPrinted) out.print(", "); out.print(ArrayModesDump(m_observedArrayModes)); hasPrinted = true; } if (structureIsPolymorphic()) { if (hasPrinted) out.print(", "); out.print("struct = TOP"); hasPrinted = true; } else if (m_expectedStructure) { if (hasPrinted) out.print(", "); out.print("struct = ", RawPointer(m_expectedStructure)); hasPrinted = true; } if (m_mayStoreToHole) { if (hasPrinted) out.print(", "); out.print("Hole"); hasPrinted = true; } if (m_outOfBounds) { if (hasPrinted) out.print(", "); out.print("OutOfBounds"); hasPrinted = true; } if (m_mayInterceptIndexedAccesses) { if (hasPrinted) out.print(", "); out.print("Intercept"); hasPrinted = true; } if (m_usesOriginalArrayStructures) { if (hasPrinted) out.print(", "); out.print("Original"); hasPrinted = true; } UNUSED_PARAM(hasPrinted); return out.toCString(); }
void AbstractValue::dumpInContext(PrintStream& out, DumpContext* context) const { out.print("(", SpeculationDump(m_type)); if (m_type & SpecCell) { out.print( ", ", ArrayModesDump(m_arrayModes), ", ", inContext(m_structure, context)); } if (!!m_value) out.print(", ", inContext(m_value, context)); out.print(")"); }
CString ArrayProfile::briefDescriptionWithoutUpdating(const ConcurrentJITLocker&) { StringPrintStream out; bool hasPrinted = false; if (m_observedArrayModes) { if (hasPrinted) out.print(", "); out.print(ArrayModesDump(m_observedArrayModes)); hasPrinted = true; } if (m_mayStoreToHole) { if (hasPrinted) out.print(", "); out.print("Hole"); hasPrinted = true; } if (m_outOfBounds) { if (hasPrinted) out.print(", "); out.print("OutOfBounds"); hasPrinted = true; } if (m_mayInterceptIndexedAccesses) { if (hasPrinted) out.print(", "); out.print("Intercept"); hasPrinted = true; } if (m_usesOriginalArrayStructures) { if (hasPrinted) out.print(", "); out.print("Original"); hasPrinted = true; } UNUSED_PARAM(hasPrinted); return out.toCString(); }