Index: src/ast.h |
diff --git a/src/ast.h b/src/ast.h |
index 3e12d54ff81a4dadf7faffb4833a9129ad485eb0..f4742f155b418cc8dee66b73753cf7f9706ae12c 100644 |
--- a/src/ast.h |
+++ b/src/ast.h |
@@ -1879,6 +1879,13 @@ class Call FINAL : public Expression { |
BailoutId ReturnId() const { return BailoutId(local_id(0)); } |
BailoutId EvalOrLookupId() const { return BailoutId(local_id(1)); } |
+ bool is_uninitialized() const { |
+ return IsUninitializedField::decode(bit_field_); |
+ } |
+ void set_is_uninitialized(bool b) { |
+ bit_field_ = IsUninitializedField::update(bit_field_, b); |
+ } |
+ |
enum CallType { |
POSSIBLY_EVAL_CALL, |
GLOBAL_CALL, |
@@ -1903,7 +1910,8 @@ class Call FINAL : public Expression { |
: Expression(zone, pos), |
call_feedback_slot_(FeedbackVectorICSlot::Invalid()), |
expression_(expression), |
- arguments_(arguments) { |
+ arguments_(arguments), |
+ bit_field_(IsUninitializedField::encode(false)) { |
if (expression->IsProperty()) { |
expression->AsProperty()->mark_for_call(); |
} |
@@ -1919,6 +1927,8 @@ class Call FINAL : public Expression { |
Handle<JSFunction> target_; |
Handle<Cell> cell_; |
Handle<AllocationSite> allocation_site_; |
+ class IsUninitializedField : public BitField8<bool, 0, 1> {}; |
Sven Panne
2014/11/21 07:34:27
This is not so good for 2 reasons: Even on 32bit,
|
+ uint8_t bit_field_; |
}; |