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

Side by Side Diff: src/code-stubs.h

Issue 6698015: Implement strict mode arguments caller/callee. (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: Created 9 years, 9 months 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
OLDNEW
1 // Copyright 2011 the V8 project authors. All rights reserved. 1 // Copyright 2011 the V8 project authors. All rights reserved.
2 // Redistribution and use in source and binary forms, with or without 2 // Redistribution and use in source and binary forms, with or without
3 // modification, are permitted provided that the following conditions are 3 // modification, are permitted provided that the following conditions are
4 // met: 4 // met:
5 // 5 //
6 // * Redistributions of source code must retain the above copyright 6 // * Redistributions of source code must retain the above copyright
7 // notice, this list of conditions and the following disclaimer. 7 // notice, this list of conditions and the following disclaimer.
8 // * Redistributions in binary form must reproduce the above 8 // * Redistributions in binary form must reproduce the above
9 // copyright notice, this list of conditions and the following 9 // copyright notice, this list of conditions and the following
10 // disclaimer in the documentation and/or other materials provided 10 // disclaimer in the documentation and/or other materials provided
(...skipping 636 matching lines...) Expand 10 before | Expand all | Expand 10 after
647 int MinorKey() { return 1; } 647 int MinorKey() { return 1; }
648 648
649 const char* GetName() { return "JSConstructEntryStub"; } 649 const char* GetName() { return "JSConstructEntryStub"; }
650 }; 650 };
651 651
652 652
653 class ArgumentsAccessStub: public CodeStub { 653 class ArgumentsAccessStub: public CodeStub {
654 public: 654 public:
655 enum Type { 655 enum Type {
656 READ_ELEMENT, 656 READ_ELEMENT,
657 NEW_OBJECT 657 NEW_OBJECT,
658 NEW_OBJECT_STRICT
658 }; 659 };
659 660
660 explicit ArgumentsAccessStub(Type type) : type_(type) { } 661 explicit ArgumentsAccessStub(Type type) : type_(type) { }
661 662
662 private: 663 private:
663 Type type_; 664 Type type_;
664 665
665 Major MajorKey() { return ArgumentsAccess; } 666 Major MajorKey() { return ArgumentsAccess; }
666 int MinorKey() { return type_; } 667 int MinorKey() { return type_; }
667 668
668 void Generate(MacroAssembler* masm); 669 void Generate(MacroAssembler* masm);
669 void GenerateReadElement(MacroAssembler* masm); 670 void GenerateReadElement(MacroAssembler* masm);
670 void GenerateNewObject(MacroAssembler* masm); 671 void GenerateNewObject(MacroAssembler* masm,
672 int boilerplate_index,
673 int arguments_object_size);
671 674
672 const char* GetName() { return "ArgumentsAccessStub"; } 675 const char* GetName() { return "ArgumentsAccessStub"; }
673 676
674 #ifdef DEBUG 677 #ifdef DEBUG
675 void Print() { 678 void Print() {
676 PrintF("ArgumentsAccessStub (type %d)\n", type_); 679 PrintF("ArgumentsAccessStub (type %d)\n", type_);
677 } 680 }
678 #endif 681 #endif
679 }; 682 };
680 683
(...skipping 253 matching lines...) Expand 10 before | Expand all | Expand 10 after
934 private: 937 private:
935 MacroAssembler* masm_; 938 MacroAssembler* masm_;
936 bool previous_allow_; 939 bool previous_allow_;
937 940
938 DISALLOW_COPY_AND_ASSIGN(AllowStubCallsScope); 941 DISALLOW_COPY_AND_ASSIGN(AllowStubCallsScope);
939 }; 942 };
940 943
941 } } // namespace v8::internal 944 } } // namespace v8::internal
942 945
943 #endif // V8_CODE_STUBS_H_ 946 #endif // V8_CODE_STUBS_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698