| Index: src/ast.h
 | 
| diff --git a/src/ast.h b/src/ast.h
 | 
| index 3308fba540a8b2f826be0a08093e7d2f763a45a2..84d828ebb9d40ac7505dfe16b8b8e99332e1b644 100644
 | 
| --- a/src/ast.h
 | 
| +++ b/src/ast.h
 | 
| @@ -344,6 +344,11 @@ class Expression : public AstNode {
 | 
|    Bounds bounds() const { return bounds_; }
 | 
|    void set_bounds(Bounds bounds) { bounds_ = bounds; }
 | 
|  
 | 
| +  // Whether the expression is parenthesized
 | 
| +  unsigned parenthesization_level() const { return parenthesization_level_; }
 | 
| +  bool is_parenthesized() const { return parenthesization_level_ > 0; }
 | 
| +  void increase_parenthesization_level() { ++parenthesization_level_; }
 | 
| +
 | 
|    // Type feedback information for assignments and properties.
 | 
|    virtual bool IsMonomorphic() {
 | 
|      UNREACHABLE();
 | 
| @@ -370,6 +375,7 @@ class Expression : public AstNode {
 | 
|        : AstNode(pos),
 | 
|          zone_(zone),
 | 
|          bounds_(Bounds::Unbounded(zone)),
 | 
| +        parenthesization_level_(0),
 | 
|          id_(GetNextId(zone)),
 | 
|          test_id_(GetNextId(zone)) {}
 | 
|    void set_to_boolean_types(byte types) { to_boolean_types_ = types; }
 | 
| @@ -379,6 +385,7 @@ class Expression : public AstNode {
 | 
|   private:
 | 
|    Bounds bounds_;
 | 
|    byte to_boolean_types_;
 | 
| +  unsigned parenthesization_level_;
 | 
|  
 | 
|    const BailoutId id_;
 | 
|    const TypeFeedbackId test_id_;
 | 
| 
 |