Index: src/ast.h |
diff --git a/src/ast.h b/src/ast.h |
index 330aa9eec7e72a11f190ae174c71deda15851522..145681b7a9f3f7e801a48884e2c897846144a39f 100644 |
--- a/src/ast.h |
+++ b/src/ast.h |
@@ -1903,6 +1903,13 @@ class Call final : public Expression { |
bit_field_ = IsUninitializedField::update(bit_field_, b); |
} |
+ void MarkShouldHandleMinusZeroResult() { |
+ bit_field_ = ShouldHandleMinusZeroResultField::update(bit_field_, true); |
+ } |
+ bool ShouldHandleMinusZeroResult() { |
+ return ShouldHandleMinusZeroResultField::decode(bit_field_); |
+ } |
+ |
enum CallType { |
POSSIBLY_EVAL_CALL, |
GLOBAL_CALL, |
@@ -1929,7 +1936,8 @@ class Call final : public Expression { |
ic_slot_or_slot_(FeedbackVectorICSlot::Invalid().ToInt()), |
expression_(expression), |
arguments_(arguments), |
- bit_field_(IsUninitializedField::encode(false)) { |
+ bit_field_(IsUninitializedField::encode(false) | |
+ ShouldHandleMinusZeroResultField::encode(false)) { |
if (expression->IsProperty()) { |
expression->AsProperty()->mark_for_call(); |
} |
@@ -1947,6 +1955,7 @@ class Call final : public Expression { |
Handle<JSFunction> target_; |
Handle<AllocationSite> allocation_site_; |
class IsUninitializedField : public BitField8<bool, 0, 1> {}; |
+ class ShouldHandleMinusZeroResultField : public BitField8<bool, 1, 1> {}; |
uint8_t bit_field_; |
}; |