Index: src/ast.h |
diff --git a/src/ast.h b/src/ast.h |
index 6cb866925968ee34f2b08ccc88a23e34eebe31d6..f4ed5acad284a48ed348e980bda224ba156a7723 100644 |
--- a/src/ast.h |
+++ b/src/ast.h |
@@ -377,6 +377,10 @@ class Expression : public AstNode { |
UNREACHABLE(); |
return STANDARD_STORE; |
} |
+ virtual IcCheckType GetKeyType() { |
+ UNREACHABLE(); |
+ return ELEMENT; |
+ } |
// TODO(rossberg): this should move to its own AST node eventually. |
virtual void RecordToBooleanTypeFeedback(TypeFeedbackOracle* oracle); |
@@ -2101,10 +2105,12 @@ class CountOperation FINAL : public Expression { |
virtual SmallMapList* GetReceiverTypes() OVERRIDE { |
return &receiver_types_; |
} |
+ virtual IcCheckType GetKeyType() OVERRIDE { return key_type_; } |
virtual KeyedAccessStoreMode GetStoreMode() OVERRIDE { |
return store_mode_; |
} |
Type* type() const { return type_; } |
+ void set_key_type(IcCheckType type) { key_type_ = type; } |
void set_store_mode(KeyedAccessStoreMode mode) { store_mode_ = mode; } |
void set_type(Type* type) { type_ = type; } |
@@ -2131,6 +2137,7 @@ class CountOperation FINAL : public Expression { |
private: |
Token::Value op_; |
bool is_prefix_ : 1; |
+ IcCheckType key_type_ : 1; |
KeyedAccessStoreMode store_mode_ : 5; // Windows treats as signed, |
// must have extra bit. |
Type* type_; |
@@ -2243,10 +2250,12 @@ class Assignment FINAL : public Expression { |
virtual SmallMapList* GetReceiverTypes() OVERRIDE { |
return &receiver_types_; |
} |
+ virtual IcCheckType GetKeyType() OVERRIDE { return key_type_; } |
virtual KeyedAccessStoreMode GetStoreMode() OVERRIDE { |
return store_mode_; |
} |
void set_is_uninitialized(bool b) { is_uninitialized_ = b; } |
+ void set_key_type(IcCheckType key_type) { key_type_ = key_type; } |
void set_store_mode(KeyedAccessStoreMode mode) { store_mode_ = mode; } |
protected: |
@@ -2271,6 +2280,7 @@ class Assignment FINAL : public Expression { |
Expression* value_; |
BinaryOperation* binary_operation_; |
bool is_uninitialized_ : 1; |
+ IcCheckType key_type_ : 1; |
KeyedAccessStoreMode store_mode_ : 5; // Windows treats as signed, |
// must have extra bit. |
SmallMapList receiver_types_; |