]> git.saurik.com Git - cycript.git/commitdiff
Always assign methods (to support JavaScriptCore).
authorJay Freeman (saurik) <saurik@saurik.com>
Wed, 16 Dec 2015 00:30:13 +0000 (16:30 -0800)
committerJay Freeman (saurik) <saurik@saurik.com>
Wed, 16 Dec 2015 00:30:13 +0000 (16:30 -0800)
Replace.cpp
Syntax.hpp

index 472908671fe2479b4bc228cb5645142733d63479..c78f380ac874e736702b36c19ba7564924b45f8d 100644 (file)
@@ -745,7 +745,7 @@ CYExpression *CYPrefix::Replace(CYContext &context) {
 }
 
 CYProperty *CYProperty::ReplaceAll(CYContext &context, CYBuilder &builder, CYExpression *self, bool update) {
-    update |= name_->Computed();
+    update |= Update();
     if (update)
         Replace(context, builder, self, false);
     if (next_ != NULL)
@@ -765,6 +765,10 @@ void CYProperty::Replace(CYContext &context, CYBuilder &builder, CYExpression *s
     Replace(context, builder, self, name, protect);
 }
 
+bool CYProperty::Update() const {
+    return name_->Computed();
+}
+
 void CYPropertyGetter::Replace(CYContext &context, CYBuilder &builder, CYExpression *self, CYExpression *name, bool protect) {
     CYIdentifier *unique(context.Unique());
     builder.declarations_
@@ -786,6 +790,10 @@ void CYPropertyMethod::Replace(CYContext &context, CYBuilder &builder, CYExpress
             CYDefineProperty(self, name, true, !protect, $ CYPropertyValue($S("value"), $V(unique), $ CYPropertyValue($S("writable"), $ CYTrue()))));
 }
 
+bool CYPropertyMethod::Update() const {
+    return true;
+}
+
 void CYPropertySetter::Replace(CYContext &context, CYBuilder &builder, CYExpression *self, CYExpression *name, bool protect) {
     CYIdentifier *unique(context.Unique());
     builder.declarations_
index c091cec90e174f6e2f69338a41def6d542574639..7bc5bbe18b75ded521881ff430530c4cb90b368b 100644 (file)
@@ -1261,6 +1261,8 @@ struct CYProperty :
     {
     }
 
+    virtual bool Update() const;
+
     CYProperty *ReplaceAll(CYContext &context, CYBuilder &builder, CYExpression *self, bool update);
     void Replace(CYContext &context, CYBuilder &builder, CYExpression *self, bool protect);
 
@@ -1715,6 +1717,8 @@ struct CYPropertyMethod :
     {
     }
 
+    bool Update() const override;
+
     virtual CYFunctionExpression *Constructor();
 
     virtual void Replace(CYContext &context, CYBuilder &builder, CYExpression *self, CYExpression *name, bool protect);