]> git.saurik.com Git - apple/javascriptcore.git/blobdiff - runtime/PutPropertySlot.h
JavaScriptCore-1218.34.tar.gz
[apple/javascriptcore.git] / runtime / PutPropertySlot.h
index eb8ea8a9942f7aaf1cb8003c92ced76bb4dd3cbf..0f694e33bb56a52dea3215ff9352e96e76c224e2 100644 (file)
@@ -38,20 +38,21 @@ namespace JSC {
     public:
         enum Type { Uncachable, ExistingProperty, NewProperty };
 
-        PutPropertySlot()
+        PutPropertySlot(bool isStrictMode = false)
             : m_type(Uncachable)
             , m_base(0)
+            , m_isStrictMode(isStrictMode)
         {
         }
 
-        void setExistingProperty(JSObject* base, size_t offset)
+        void setExistingProperty(JSObject* base, PropertyOffset offset)
         {
             m_type = ExistingProperty;
             m_base = base;
             m_offset = offset;
         }
 
-        void setNewProperty(JSObject* base, size_t offset)
+        void setNewProperty(JSObject* base, PropertyOffset offset)
         {
             m_type = NewProperty;
             m_base = base;
@@ -61,15 +62,19 @@ namespace JSC {
         Type type() const { return m_type; }
         JSObject* base() const { return m_base; }
 
+        bool isStrictMode() const { return m_isStrictMode; }
         bool isCacheable() const { return m_type != Uncachable; }
-        size_t cachedOffset() const {
+        PropertyOffset cachedOffset() const
+        {
             ASSERT(isCacheable());
             return m_offset;
         }
+
     private:
         Type m_type;
         JSObject* m_base;
-        size_t m_offset;
+        PropertyOffset m_offset;
+        bool m_isStrictMode;
     };
 
 } // namespace JSC