summaryrefslogtreecommitdiff
path: root/Source/JavaScriptCore/runtime/SymbolTable.h
diff options
context:
space:
mode:
authorSimon Hausmann <simon.hausmann@digia.com>2012-09-18 15:53:33 +0200
committerSimon Hausmann <simon.hausmann@digia.com>2012-09-18 15:53:33 +0200
commit6bbb7fbbac94d0f511a7bd0cbd50854ab643bfb2 (patch)
treed9c68d1cca0b3e352f1e438561f3e504e641a08f /Source/JavaScriptCore/runtime/SymbolTable.h
parentd0424a769059c84ae20beb3c217812792ea6726b (diff)
downloadqtwebkit-6bbb7fbbac94d0f511a7bd0cbd50854ab643bfb2.tar.gz
Imported WebKit commit c7503cef7ecb236730d1309676ab9fc723fd061d (http://svn.webkit.org/repository/webkit/trunk@128886)
New snapshot with various build fixes
Diffstat (limited to 'Source/JavaScriptCore/runtime/SymbolTable.h')
-rw-r--r--Source/JavaScriptCore/runtime/SymbolTable.h25
1 files changed, 24 insertions, 1 deletions
diff --git a/Source/JavaScriptCore/runtime/SymbolTable.h b/Source/JavaScriptCore/runtime/SymbolTable.h
index f6f70c6b9..5427a009b 100644
--- a/Source/JavaScriptCore/runtime/SymbolTable.h
+++ b/Source/JavaScriptCore/runtime/SymbolTable.h
@@ -40,6 +40,23 @@ namespace JSC {
class Watchpoint;
class WatchpointSet;
+ struct SlowArgument {
+ enum Status {
+ Normal = 0,
+ Captured = 1,
+ Deleted = 2
+ };
+
+ SlowArgument()
+ : status(Normal)
+ , indexIfCaptured(0)
+ {
+ }
+
+ Status status;
+ int indexIfCaptured; // If status is 'Captured', indexIfCaptured is our index in the CallFrame.
+ };
+
static ALWAYS_INLINE int missingSymbolMarker() { return std::numeric_limits<int>::max(); }
// The bit twiddling in this class assumes that every register index is a
@@ -357,9 +374,14 @@ namespace JSC {
int captureEnd() { return m_captureEnd; }
void setCaptureEnd(int captureEnd) { m_captureEnd = captureEnd; }
+ int parameterCount() { return m_parameterCountIncludingThis - 1; }
int parameterCountIncludingThis() { return m_parameterCountIncludingThis; }
void setParameterCountIncludingThis(int parameterCountIncludingThis) { m_parameterCountIncludingThis = parameterCountIncludingThis; }
+ // 0 if we don't capture any arguments; parameterCount() in length if we do.
+ const SlowArgument* slowArguments() { return m_slowArguments.get(); }
+ void setSlowArguments(PassOwnArrayPtr<SlowArgument> slowArguments) { m_slowArguments = slowArguments; }
+
static JS_EXPORTDATA const ClassInfo s_info;
private:
@@ -379,8 +401,9 @@ namespace JSC {
CaptureMode m_captureMode;
int m_captureStart;
int m_captureEnd;
+
+ OwnArrayPtr<SlowArgument> m_slowArguments;
};
-
} // namespace JSC
#endif // SymbolTable_h