OLD | NEW |
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 126 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
137 MUST_USE_RESULT MaybeObject* ComputeKeyedLoadStringLength( | 137 MUST_USE_RESULT MaybeObject* ComputeKeyedLoadStringLength( |
138 String* name, | 138 String* name, |
139 String* receiver); | 139 String* receiver); |
140 | 140 |
141 MUST_USE_RESULT MaybeObject* ComputeKeyedLoadFunctionPrototype( | 141 MUST_USE_RESULT MaybeObject* ComputeKeyedLoadFunctionPrototype( |
142 String* name, | 142 String* name, |
143 JSFunction* receiver); | 143 JSFunction* receiver); |
144 | 144 |
145 // --- | 145 // --- |
146 | 146 |
147 MUST_USE_RESULT MaybeObject* ComputeStoreField( | 147 Handle<Code> ComputeStoreField(Handle<String> name, |
148 String* name, | 148 Handle<JSObject> receiver, |
149 JSObject* receiver, | 149 int field_index, |
150 int field_index, | 150 Handle<Map> transition, |
151 Map* transition, | 151 StrictModeFlag strict_mode); |
152 StrictModeFlag strict_mode); | |
153 | 152 |
154 MUST_USE_RESULT MaybeObject* ComputeStoreNormal( | 153 Handle<Code> ComputeStoreNormal(StrictModeFlag strict_mode); |
155 StrictModeFlag strict_mode); | |
156 | 154 |
157 MUST_USE_RESULT MaybeObject* ComputeStoreGlobal( | 155 Handle<Code> ComputeStoreGlobal(Handle<String> name, |
158 String* name, | 156 Handle<GlobalObject> receiver, |
159 GlobalObject* receiver, | 157 Handle<JSGlobalPropertyCell> cell, |
160 JSGlobalPropertyCell* cell, | 158 StrictModeFlag strict_mode); |
161 StrictModeFlag strict_mode); | |
162 | 159 |
163 MUST_USE_RESULT MaybeObject* ComputeStoreCallback( | 160 Handle<Code> ComputeStoreCallback(Handle<String> name, |
164 String* name, | 161 Handle<JSObject> receiver, |
165 JSObject* receiver, | 162 Handle<AccessorInfo> callback, |
166 AccessorInfo* callback, | 163 StrictModeFlag strict_mode); |
167 StrictModeFlag strict_mode); | |
168 | 164 |
169 MUST_USE_RESULT MaybeObject* ComputeStoreInterceptor( | 165 Handle<Code> ComputeStoreInterceptor(Handle<String> name, |
170 String* name, | 166 Handle<JSObject> receiver, |
171 JSObject* receiver, | 167 StrictModeFlag strict_mode); |
172 StrictModeFlag strict_mode); | |
173 | 168 |
174 // --- | 169 // --- |
175 | 170 |
176 MUST_USE_RESULT MaybeObject* ComputeKeyedStoreField( | 171 MUST_USE_RESULT MaybeObject* ComputeKeyedStoreField( |
177 String* name, | 172 String* name, |
178 JSObject* receiver, | 173 JSObject* receiver, |
179 int field_index, | 174 int field_index, |
180 Map* transition, | 175 Map* transition, |
181 StrictModeFlag strict_mode); | 176 StrictModeFlag strict_mode); |
182 | 177 |
(...skipping 503 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
686 String* name, | 681 String* name, |
687 InlineCacheState state = MONOMORPHIC); | 682 InlineCacheState state = MONOMORPHIC); |
688 }; | 683 }; |
689 | 684 |
690 | 685 |
691 class StoreStubCompiler: public StubCompiler { | 686 class StoreStubCompiler: public StubCompiler { |
692 public: | 687 public: |
693 StoreStubCompiler(Isolate* isolate, StrictModeFlag strict_mode) | 688 StoreStubCompiler(Isolate* isolate, StrictModeFlag strict_mode) |
694 : StubCompiler(isolate), strict_mode_(strict_mode) { } | 689 : StubCompiler(isolate), strict_mode_(strict_mode) { } |
695 | 690 |
| 691 |
| 692 Handle<Code> CompileStoreField(Handle<JSObject> object, |
| 693 int index, |
| 694 Handle<Map> transition, |
| 695 Handle<String> name); |
| 696 |
696 MUST_USE_RESULT MaybeObject* CompileStoreField(JSObject* object, | 697 MUST_USE_RESULT MaybeObject* CompileStoreField(JSObject* object, |
697 int index, | 698 int index, |
698 Map* transition, | 699 Map* transition, |
699 String* name); | 700 String* name); |
700 | 701 |
| 702 Handle<Code> CompileStoreCallback(Handle<JSObject> object, |
| 703 Handle<AccessorInfo> callback, |
| 704 Handle<String> name); |
| 705 |
701 MUST_USE_RESULT MaybeObject* CompileStoreCallback(JSObject* object, | 706 MUST_USE_RESULT MaybeObject* CompileStoreCallback(JSObject* object, |
702 AccessorInfo* callbacks, | 707 AccessorInfo* callback, |
703 String* name); | 708 String* name); |
| 709 Handle<Code> CompileStoreInterceptor(Handle<JSObject> object, |
| 710 Handle<String> name); |
| 711 |
704 MUST_USE_RESULT MaybeObject* CompileStoreInterceptor(JSObject* object, | 712 MUST_USE_RESULT MaybeObject* CompileStoreInterceptor(JSObject* object, |
705 String* name); | 713 String* name); |
| 714 |
| 715 Handle<Code> CompileStoreGlobal(Handle<GlobalObject> object, |
| 716 Handle<JSGlobalPropertyCell> holder, |
| 717 Handle<String> name); |
| 718 |
706 MUST_USE_RESULT MaybeObject* CompileStoreGlobal(GlobalObject* object, | 719 MUST_USE_RESULT MaybeObject* CompileStoreGlobal(GlobalObject* object, |
707 JSGlobalPropertyCell* holder, | 720 JSGlobalPropertyCell* holder, |
708 String* name); | 721 String* name); |
709 | 722 |
710 | 723 |
711 private: | 724 private: |
712 MaybeObject* GetCode(PropertyType type, String* name); | 725 MaybeObject* GetCode(PropertyType type, String* name); |
713 | 726 |
714 StrictModeFlag strict_mode_; | 727 StrictModeFlag strict_mode_; |
715 }; | 728 }; |
(...skipping 201 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
917 JSFunction* constant_function_; | 930 JSFunction* constant_function_; |
918 bool is_simple_api_call_; | 931 bool is_simple_api_call_; |
919 FunctionTemplateInfo* expected_receiver_type_; | 932 FunctionTemplateInfo* expected_receiver_type_; |
920 CallHandlerInfo* api_call_info_; | 933 CallHandlerInfo* api_call_info_; |
921 }; | 934 }; |
922 | 935 |
923 | 936 |
924 } } // namespace v8::internal | 937 } } // namespace v8::internal |
925 | 938 |
926 #endif // V8_STUB_CACHE_H_ | 939 #endif // V8_STUB_CACHE_H_ |
OLD | NEW |