| Index: src/ast.h
|
| diff --git a/src/ast.h b/src/ast.h
|
| index 4ef0282c07c1e1aa98a41fb4eb8132dd21ac392b..675daa127e12f53d33ab482e259cd02d7d6f35c8 100644
|
| --- a/src/ast.h
|
| +++ b/src/ast.h
|
| @@ -2618,26 +2618,6 @@ class FunctionLiteral final : public Expression {
|
| dont_optimize_reason_ = reason;
|
| }
|
|
|
| - static int num_ids() { return parent_num_ids() + 1; }
|
| - TypeFeedbackId HomeObjectFeedbackId() { return TypeFeedbackId(local_id(0)); }
|
| -
|
| - // Type feedback information.
|
| - virtual FeedbackVectorRequirements ComputeFeedbackRequirements(
|
| - Isolate* isolate, const ICSlotCache* cache) override {
|
| - return FeedbackVectorRequirements(0, 1);
|
| - }
|
| - void SetFirstFeedbackICSlot(FeedbackVectorICSlot slot,
|
| - ICSlotCache* cache) override {
|
| - DCHECK(!slot.IsInvalid());
|
| - home_object_feedback_slot_ = slot;
|
| - }
|
| - Code::Kind FeedbackICSlotKind(int index) override { return Code::LOAD_IC; }
|
| -
|
| - FeedbackVectorICSlot HomeObjectFeedbackSlot() {
|
| - DCHECK(!home_object_feedback_slot_.IsInvalid());
|
| - return home_object_feedback_slot_;
|
| - }
|
| -
|
| protected:
|
| FunctionLiteral(Zone* zone, const AstRawString* name,
|
| AstValueFactory* ast_value_factory, Scope* scope,
|
| @@ -2659,8 +2639,7 @@ class FunctionLiteral final : public Expression {
|
| expected_property_count_(expected_property_count),
|
| handler_count_(handler_count),
|
| parameter_count_(parameter_count),
|
| - function_token_position_(RelocInfo::kNoPosition),
|
| - home_object_feedback_slot_(FeedbackVectorICSlot::Invalid()) {
|
| + function_token_position_(RelocInfo::kNoPosition) {
|
| bitfield_ = IsExpression::encode(function_type != DECLARATION) |
|
| IsAnonymous::encode(function_type == ANONYMOUS_EXPRESSION) |
|
| Pretenure::encode(false) |
|
| @@ -2672,8 +2651,6 @@ class FunctionLiteral final : public Expression {
|
| DCHECK(IsValidFunctionKind(kind));
|
| }
|
|
|
| - static int parent_num_ids() { return Expression::num_ids(); }
|
| -
|
| private:
|
| const AstRawString* raw_name_;
|
| Handle<String> name_;
|
| @@ -2691,9 +2668,6 @@ class FunctionLiteral final : public Expression {
|
| int parameter_count_;
|
| int function_token_position_;
|
|
|
| - int local_id(int n) const { return base_id() + parent_num_ids() + n; }
|
| - FeedbackVectorICSlot home_object_feedback_slot_;
|
| -
|
| unsigned bitfield_;
|
| class IsExpression : public BitField<bool, 0, 1> {};
|
| class IsAnonymous : public BitField<bool, 1, 1> {};
|
| @@ -2795,21 +2769,19 @@ class SuperPropertyReference final : public Expression {
|
| DECLARE_NODE_TYPE(SuperPropertyReference)
|
|
|
| VariableProxy* this_var() const { return this_var_; }
|
| - VariableProxy* home_object_var() const { return home_object_var_; }
|
| + Expression* home_object() const { return home_object_; }
|
|
|
| protected:
|
| SuperPropertyReference(Zone* zone, VariableProxy* this_var,
|
| - VariableProxy* home_object_var, int pos)
|
| - : Expression(zone, pos),
|
| - this_var_(this_var),
|
| - home_object_var_(home_object_var) {
|
| + Expression* home_object, int pos)
|
| + : Expression(zone, pos), this_var_(this_var), home_object_(home_object) {
|
| DCHECK(this_var->is_this());
|
| - DCHECK(home_object_var->raw_name()->IsOneByteEqualTo(".home_object"));
|
| + DCHECK(home_object->IsProperty());
|
| }
|
|
|
| private:
|
| VariableProxy* this_var_;
|
| - VariableProxy* home_object_var_;
|
| + Expression* home_object_;
|
| };
|
|
|
|
|
| @@ -3608,10 +3580,11 @@ class AstNodeFactory final BASE_EMBEDDED {
|
| return new (zone_) ThisFunction(zone_, pos);
|
| }
|
|
|
| - SuperPropertyReference* NewSuperPropertyReference(
|
| - VariableProxy* this_var, VariableProxy* home_object_var, int pos) {
|
| + SuperPropertyReference* NewSuperPropertyReference(VariableProxy* this_var,
|
| + Expression* home_object,
|
| + int pos) {
|
| return new (zone_)
|
| - SuperPropertyReference(zone_, this_var, home_object_var, pos);
|
| + SuperPropertyReference(zone_, this_var, home_object, pos);
|
| }
|
|
|
| SuperCallReference* NewSuperCallReference(VariableProxy* this_var,
|
|
|