/*
- * Copyright (C) 2012, 2013 Apple Inc. All rights reserved.
+ * Copyright (C) 2012, 2013, 2014 Apple Inc. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
#include "ProfilerCompilationKind.h"
#include "ProfilerCompiledBytecode.h"
#include "ProfilerExecutionCounter.h"
+#include "ProfilerJettisonReason.h"
#include "ProfilerOSRExit.h"
#include "ProfilerOSRExitSite.h"
#include "ProfilerOriginStack.h"
#include <wtf/RefCounted.h>
#include <wtf/SegmentedVector.h>
-namespace JSC { namespace Profiler {
+namespace JSC {
+
+class FireDetail;
+
+namespace Profiler {
class Bytecodes;
class Database;
CompilationKind kind() const { return m_kind; }
void addDescription(const CompiledBytecode&);
+ void addDescription(const OriginStack&, const CString& description);
ExecutionCounter* executionCounterFor(const OriginStack&);
void addOSRExitSite(const Vector<const void*>& codeAddresses);
OSRExit* addOSRExit(unsigned id, const OriginStack&, ExitKind, bool isWatchpoint);
+ void setJettisonReason(JettisonReason, const FireDetail*);
+
JSValue toJS(ExecState*) const;
private:
Bytecodes* m_bytecodes;
CompilationKind m_kind;
+ JettisonReason m_jettisonReason;
+ CString m_additionalJettisonReason;
Vector<ProfiledBytecodes> m_profiledBytecodes;
Vector<CompiledBytecode> m_descriptions;
- HashMap<OriginStack, OwnPtr<ExecutionCounter> > m_counters;
+ HashMap<OriginStack, std::unique_ptr<ExecutionCounter>> m_counters;
Vector<OSRExitSite> m_osrExitSites;
SegmentedVector<OSRExit> m_osrExits;
unsigned m_numInlinedGetByIds;