]> git.saurik.com Git - apple/javascriptcore.git/blobdiff - runtime/PutPropertySlot.h
JavaScriptCore-1097.3.tar.gz
[apple/javascriptcore.git] / runtime / PutPropertySlot.h
index 1e2dfe920eedb5d441b2f1b88eb8441da87ec84e..69d1f8bd29df6f7b3951615dd4cac0e26963adf4 100644 (file)
 namespace JSC {
     
     class JSObject;
 namespace JSC {
     
     class JSObject;
+    class JSFunction;
     
     class PutPropertySlot {
     public:
     
     class PutPropertySlot {
     public:
-        enum Type { Invalid, ExistingProperty, NewProperty };
+        enum Type { Uncachable, ExistingProperty, NewProperty };
 
 
-        PutPropertySlot()
-            : m_type(Invalid)
+        PutPropertySlot(bool isStrictMode = false)
+            : m_type(Uncachable)
             , m_base(0)
             , m_base(0)
-            , m_wasTransition(false)
+            , m_isStrictMode(isStrictMode)
         {
         }
 
         {
         }
 
@@ -61,19 +62,18 @@ namespace JSC {
         Type type() const { return m_type; }
         JSObject* base() const { return m_base; }
 
         Type type() const { return m_type; }
         JSObject* base() const { return m_base; }
 
-        bool isCacheable() const { return m_type != Invalid; }
+        bool isStrictMode() const { return m_isStrictMode; }
+        bool isCacheable() const { return m_type != Uncachable; }
         size_t cachedOffset() const {
             ASSERT(isCacheable());
             return m_offset;
         }
         size_t cachedOffset() const {
             ASSERT(isCacheable());
             return m_offset;
         }
-        
-        bool wasTransition() const { return m_wasTransition; }
-        void setWasTransition(bool wasTransition) { m_wasTransition = wasTransition; }
+
     private:
         Type m_type;
         JSObject* m_base;
     private:
         Type m_type;
         JSObject* m_base;
-        bool m_wasTransition;
         size_t m_offset;
         size_t m_offset;
+        bool m_isStrictMode;
     };
 
 } // namespace JSC
     };
 
 } // namespace JSC