Index: src/ast.h |
diff --git a/src/ast.h b/src/ast.h |
index 4903928456dd540cce2cfbdae6f17e3c058b731e..6da9a5f57bee1393b83985601b37e9c07112dbfd 100644 |
--- a/src/ast.h |
+++ b/src/ast.h |
@@ -1530,7 +1530,12 @@ class ObjectLiteral FINAL : public MaterializedLiteral { |
BailoutId CreateLiteralId() const { return BailoutId(local_id(0)); } |
- static int num_ids() { return parent_num_ids() + 1; } |
+ // Return an AST id for a property that is used in simulate instructions. |
+ BailoutId GetIdForProperty(int i) { return BailoutId(local_id(i + 1)); } |
+ |
+ // Unlike other AST nodes, this number of bailout IDs allocated for an |
+ // ObjectLiteral can vary, so num_ids() is not a static method. |
+ int num_ids() const { return parent_num_ids() + 1 + properties()->length(); } |
protected: |
ObjectLiteral(Zone* zone, ZoneList<Property*>* properties, int literal_index, |
@@ -2641,11 +2646,17 @@ class ClassLiteral FINAL : public Expression { |
int start_position() const { return position(); } |
int end_position() const { return end_position_; } |
- static int num_ids() { return parent_num_ids() + 3; } |
BailoutId EntryId() const { return BailoutId(local_id(0)); } |
BailoutId DeclsId() const { return BailoutId(local_id(1)); } |
BailoutId ExitId() { return BailoutId(local_id(2)); } |
+ // Return an AST id for a property that is used in simulate instructions. |
+ BailoutId GetIdForProperty(int i) { return BailoutId(local_id(i + 3)); } |
+ |
+ // Unlike other AST nodes, this number of bailout IDs allocated for an |
+ // ClassLiteral can vary, so num_ids() is not a static method. |
+ int num_ids() const { return parent_num_ids() + 3 + properties()->length(); } |
+ |
protected: |
ClassLiteral(Zone* zone, const AstRawString* name, Scope* scope, |
VariableProxy* class_variable_proxy, Expression* extends, |