| Index: src/ast.h
|
| diff --git a/src/ast.h b/src/ast.h
|
| index f4742f155b418cc8dee66b73753cf7f9706ae12c..25cfdf59b3b50b3d907970d1316254e8f1ac4fa7 100644
|
| --- a/src/ast.h
|
| +++ b/src/ast.h
|
| @@ -237,7 +237,8 @@ class AstNode: public ZoneObject {
|
| // node types which don't actually have this. Note that this is conceptually
|
| // not really nice, but multiple inheritance would introduce yet another
|
| // vtable entry per node, something we don't want for space reasons.
|
| - virtual FeedbackVectorRequirements ComputeFeedbackRequirements() {
|
| + virtual FeedbackVectorRequirements ComputeFeedbackRequirements(
|
| + Isolate* isolate) {
|
| return FeedbackVectorRequirements(0, 0);
|
| }
|
| virtual void SetFirstFeedbackSlot(FeedbackVectorSlot slot) { UNREACHABLE(); }
|
| @@ -923,7 +924,8 @@ class ForInStatement FINAL : public ForEachStatement {
|
| }
|
|
|
| // Type feedback information.
|
| - virtual FeedbackVectorRequirements ComputeFeedbackRequirements() OVERRIDE {
|
| + virtual FeedbackVectorRequirements ComputeFeedbackRequirements(
|
| + Isolate* isolate) OVERRIDE {
|
| return FeedbackVectorRequirements(1, 0);
|
| }
|
| virtual void SetFirstFeedbackSlot(FeedbackVectorSlot slot) OVERRIDE {
|
| @@ -1696,7 +1698,8 @@ class VariableProxy FINAL : public Expression {
|
| // Bind this proxy to the variable var. Interfaces must match.
|
| void BindTo(Variable* var);
|
|
|
| - virtual FeedbackVectorRequirements ComputeFeedbackRequirements() OVERRIDE {
|
| + virtual FeedbackVectorRequirements ComputeFeedbackRequirements(
|
| + Isolate* isolate) OVERRIDE {
|
| return FeedbackVectorRequirements(0, FLAG_vector_ics ? 1 : 0);
|
| }
|
| virtual void SetFirstFeedbackICSlot(FeedbackVectorICSlot slot) OVERRIDE {
|
| @@ -1782,7 +1785,8 @@ class Property FINAL : public Expression {
|
| return obj()->IsSuperReference();
|
| }
|
|
|
| - virtual FeedbackVectorRequirements ComputeFeedbackRequirements() OVERRIDE {
|
| + virtual FeedbackVectorRequirements ComputeFeedbackRequirements(
|
| + Isolate* isolate) OVERRIDE {
|
| return FeedbackVectorRequirements(0, FLAG_vector_ics ? 1 : 0);
|
| }
|
| virtual void SetFirstFeedbackICSlot(FeedbackVectorICSlot slot) OVERRIDE {
|
| @@ -1827,9 +1831,8 @@ class Call FINAL : public Expression {
|
| ZoneList<Expression*>* arguments() const { return arguments_; }
|
|
|
| // Type feedback information.
|
| - virtual FeedbackVectorRequirements ComputeFeedbackRequirements() OVERRIDE {
|
| - return FeedbackVectorRequirements(0, 1);
|
| - }
|
| + virtual FeedbackVectorRequirements ComputeFeedbackRequirements(
|
| + Isolate* isolate) OVERRIDE;
|
| virtual void SetFirstFeedbackICSlot(FeedbackVectorICSlot slot) OVERRIDE {
|
| call_feedback_slot_ = slot;
|
| }
|
| @@ -1940,7 +1943,8 @@ class CallNew FINAL : public Expression {
|
| ZoneList<Expression*>* arguments() const { return arguments_; }
|
|
|
| // Type feedback information.
|
| - virtual FeedbackVectorRequirements ComputeFeedbackRequirements() OVERRIDE {
|
| + virtual FeedbackVectorRequirements ComputeFeedbackRequirements(
|
| + Isolate* isolate) OVERRIDE {
|
| return FeedbackVectorRequirements(FLAG_pretenuring_call_new ? 2 : 1, 0);
|
| }
|
| virtual void SetFirstFeedbackSlot(FeedbackVectorSlot slot) OVERRIDE {
|
| @@ -2005,7 +2009,8 @@ class CallRuntime FINAL : public Expression {
|
| bool is_jsruntime() const { return function_ == NULL; }
|
|
|
| // Type feedback information.
|
| - virtual FeedbackVectorRequirements ComputeFeedbackRequirements() OVERRIDE {
|
| + virtual FeedbackVectorRequirements ComputeFeedbackRequirements(
|
| + Isolate* isolate) OVERRIDE {
|
| return FeedbackVectorRequirements(
|
| 0, (FLAG_vector_ics && is_jsruntime()) ? 1 : 0);
|
| }
|
| @@ -2384,7 +2389,8 @@ class Yield FINAL : public Expression {
|
| }
|
|
|
| // Type feedback information.
|
| - virtual FeedbackVectorRequirements ComputeFeedbackRequirements() OVERRIDE {
|
| + virtual FeedbackVectorRequirements ComputeFeedbackRequirements(
|
| + Isolate* isolate) OVERRIDE {
|
| return FeedbackVectorRequirements(
|
| 0, (FLAG_vector_ics && yield_kind() == kDelegating) ? 3 : 0);
|
| }
|
| @@ -2721,7 +2727,8 @@ class SuperReference FINAL : public Expression {
|
| TypeFeedbackId HomeObjectFeedbackId() { return TypeFeedbackId(local_id(0)); }
|
|
|
| // Type feedback information.
|
| - virtual FeedbackVectorRequirements ComputeFeedbackRequirements() OVERRIDE {
|
| + virtual FeedbackVectorRequirements ComputeFeedbackRequirements(
|
| + Isolate* isolate) OVERRIDE {
|
| return FeedbackVectorRequirements(0, FLAG_vector_ics ? 1 : 0);
|
| }
|
| virtual void SetFirstFeedbackICSlot(FeedbackVectorICSlot slot) OVERRIDE {
|
|
|