Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1247)

Side by Side Diff: src/full-codegen.h

Issue 718473002: ES6: Add support for super in object literals (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: Fix remaining code review issues Created 6 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « src/ast.cc ('k') | src/hydrogen.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2012 the V8 project authors. All rights reserved. 1 // Copyright 2012 the V8 project authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #ifndef V8_FULL_CODEGEN_H_ 5 #ifndef V8_FULL_CODEGEN_H_
6 #define V8_FULL_CODEGEN_H_ 6 #define V8_FULL_CODEGEN_H_
7 7
8 #include "src/v8.h" 8 #include "src/v8.h"
9 9
10 #include "src/allocation.h" 10 #include "src/allocation.h"
(...skipping 596 matching lines...) Expand 10 before | Expand all | Expand 10 after
607 // is expected in accumulator. 607 // is expected in accumulator.
608 void EmitKeyedSuperPropertyStore(Property* prop); 608 void EmitKeyedSuperPropertyStore(Property* prop);
609 609
610 // Complete a keyed property assignment. The receiver and key are 610 // Complete a keyed property assignment. The receiver and key are
611 // expected on top of the stack and the right-hand-side value in the 611 // expected on top of the stack and the right-hand-side value in the
612 // accumulator. 612 // accumulator.
613 void EmitKeyedPropertyAssignment(Assignment* expr); 613 void EmitKeyedPropertyAssignment(Assignment* expr);
614 614
615 void EmitLoadHomeObject(SuperReference* expr); 615 void EmitLoadHomeObject(SuperReference* expr);
616 616
617 static bool NeedsHomeObject(Expression* expr) {
618 return FunctionLiteral::NeedsHomeObject(expr);
619 }
620
621 // Adds the [[HomeObject]] to |initializer| if it is a FunctionLiteral.
622 // The value of the initializer is expected to be at the top of the stack.
623 // |offset| is the offset in the stack where the home object can be found.
624 void EmitSetHomeObjectIfNeeded(Expression* initializer, int offset);
625
617 void EmitLoadSuperConstructor(SuperReference* expr); 626 void EmitLoadSuperConstructor(SuperReference* expr);
618 627
619 void CallIC(Handle<Code> code, 628 void CallIC(Handle<Code> code,
620 TypeFeedbackId id = TypeFeedbackId::None()); 629 TypeFeedbackId id = TypeFeedbackId::None());
621 630
622 void CallLoadIC(ContextualMode mode, 631 void CallLoadIC(ContextualMode mode,
623 TypeFeedbackId id = TypeFeedbackId::None()); 632 TypeFeedbackId id = TypeFeedbackId::None());
624 void CallStoreIC(TypeFeedbackId id = TypeFeedbackId::None()); 633 void CallStoreIC(TypeFeedbackId id = TypeFeedbackId::None());
625 634
626 void SetFunctionPosition(FunctionLiteral* fun); 635 void SetFunctionPosition(FunctionLiteral* fun);
(...skipping 371 matching lines...) Expand 10 before | Expand all | Expand 10 after
998 1007
999 Address start_; 1008 Address start_;
1000 Address instruction_start_; 1009 Address instruction_start_;
1001 uint32_t length_; 1010 uint32_t length_;
1002 }; 1011 };
1003 1012
1004 1013
1005 } } // namespace v8::internal 1014 } } // namespace v8::internal
1006 1015
1007 #endif // V8_FULL_CODEGEN_H_ 1016 #endif // V8_FULL_CODEGEN_H_
OLDNEW
« no previous file with comments | « src/ast.cc ('k') | src/hydrogen.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698