summaryrefslogtreecommitdiff
path: root/Source/JavaScriptCore/profiler/ProfilerCompilation.h
diff options
context:
space:
mode:
Diffstat (limited to 'Source/JavaScriptCore/profiler/ProfilerCompilation.h')
-rw-r--r--Source/JavaScriptCore/profiler/ProfilerCompilation.h25
1 files changed, 18 insertions, 7 deletions
diff --git a/Source/JavaScriptCore/profiler/ProfilerCompilation.h b/Source/JavaScriptCore/profiler/ProfilerCompilation.h
index dc2810525..1e058627c 100644
--- a/Source/JavaScriptCore/profiler/ProfilerCompilation.h
+++ b/Source/JavaScriptCore/profiler/ProfilerCompilation.h
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2012, 2013 Apple Inc. All rights reserved.
+ * Copyright (C) 2012-2014, 2016 Apple Inc. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -23,22 +23,27 @@
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
-#ifndef ProfilerCompilation_h
-#define ProfilerCompilation_h
+#pragma once
#include "ExitKind.h"
#include "JSCJSValue.h"
#include "ProfilerCompilationKind.h"
#include "ProfilerCompiledBytecode.h"
#include "ProfilerExecutionCounter.h"
+#include "ProfilerJettisonReason.h"
#include "ProfilerOSRExit.h"
#include "ProfilerOSRExitSite.h"
#include "ProfilerOriginStack.h"
#include "ProfilerProfiledBytecodes.h"
+#include "ProfilerUID.h"
#include <wtf/RefCounted.h>
#include <wtf/SegmentedVector.h>
-namespace JSC { namespace Profiler {
+namespace JSC {
+
+class FireDetail;
+
+namespace Profiler {
class Bytecodes;
class Database;
@@ -63,15 +68,23 @@ public:
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*);
+
+ UID uid() const { return m_uid; }
+
+ void dump(PrintStream&) const;
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, std::unique_ptr<ExecutionCounter>> m_counters;
@@ -80,9 +93,7 @@ private:
unsigned m_numInlinedGetByIds;
unsigned m_numInlinedPutByIds;
unsigned m_numInlinedCalls;
+ UID m_uid;
};
} } // namespace JSC::Profiler
-
-#endif // ProfilerCompilation_h
-