2008-07-02 Geoffrey Garen <ggaren@apple.com>
[WebKit-https.git] / JavaScriptCore / VM / Machine.h
index 38c97af..228cf04 100644 (file)
@@ -29,6 +29,8 @@
 #ifndef Machine_h
 #define Machine_h
 
+#include "JSCell.h"
+#include "JSValue.h"
 #include "Opcode.h"
 #include "RegisterFile.h"
 #include <kjs/list.h>
@@ -140,6 +142,9 @@ namespace KJS {
         JSValue* checkTimeout(JSGlobalObject*);
         void resetTimeoutCheck();
 
+        bool isJSArray(JSValue* v) { return !JSImmediate::isImmediate(v) && v->asCell()->vptr() == m_jsArrayVptr; }
+        bool isJSString(JSValue* v) { return !JSImmediate::isImmediate(v) && v->asCell()->vptr() == m_jsStringVptr; }
+        
         int m_reentryDepth;
         unsigned m_timeoutTime;
         unsigned m_timeAtLastCheckTimeout;
@@ -148,6 +153,9 @@ namespace KJS {
         unsigned m_ticksUntilNextTimeoutCheck;
 
         RegisterFile m_registerFile;
+        
+        void* m_jsArrayVptr;
+        void* m_jsStringVptr;
 
 #if HAVE(COMPUTED_GOTO)
         Opcode m_opcodeTable[numOpcodeIDs]; // Maps OpcodeID => Opcode for compiling