OLD | NEW |
1 // Copyright 2012 the V8 project authors. All rights reserved. | 1 // Copyright 2012 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 1049 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1060 // Generates a jump to CallIC miss stub. | 1060 // Generates a jump to CallIC miss stub. |
1061 void GenerateMissBranch(); | 1061 void GenerateMissBranch(); |
1062 | 1062 |
1063 const ParameterCount arguments_; | 1063 const ParameterCount arguments_; |
1064 const Code::Kind kind_; | 1064 const Code::Kind kind_; |
1065 const Code::ExtraICState extra_state_; | 1065 const Code::ExtraICState extra_state_; |
1066 const InlineCacheHolderFlag cache_holder_; | 1066 const InlineCacheHolderFlag cache_holder_; |
1067 }; | 1067 }; |
1068 | 1068 |
1069 | 1069 |
1070 class ConstructStubCompiler: public StubCompiler { | |
1071 public: | |
1072 explicit ConstructStubCompiler(Isolate* isolate) : StubCompiler(isolate) { } | |
1073 | |
1074 Handle<Code> CompileConstructStub(Handle<JSFunction> function); | |
1075 | |
1076 private: | |
1077 Handle<Code> GetCode(); | |
1078 }; | |
1079 | |
1080 | |
1081 // Holds information about possible function call optimizations. | 1070 // Holds information about possible function call optimizations. |
1082 class CallOptimization BASE_EMBEDDED { | 1071 class CallOptimization BASE_EMBEDDED { |
1083 public: | 1072 public: |
1084 explicit CallOptimization(LookupResult* lookup); | 1073 explicit CallOptimization(LookupResult* lookup); |
1085 | 1074 |
1086 explicit CallOptimization(Handle<JSFunction> function); | 1075 explicit CallOptimization(Handle<JSFunction> function); |
1087 | 1076 |
1088 bool is_constant_call() const { | 1077 bool is_constant_call() const { |
1089 return !constant_function_.is_null(); | 1078 return !constant_function_.is_null(); |
1090 } | 1079 } |
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1123 Handle<JSFunction> constant_function_; | 1112 Handle<JSFunction> constant_function_; |
1124 bool is_simple_api_call_; | 1113 bool is_simple_api_call_; |
1125 Handle<FunctionTemplateInfo> expected_receiver_type_; | 1114 Handle<FunctionTemplateInfo> expected_receiver_type_; |
1126 Handle<CallHandlerInfo> api_call_info_; | 1115 Handle<CallHandlerInfo> api_call_info_; |
1127 }; | 1116 }; |
1128 | 1117 |
1129 | 1118 |
1130 } } // namespace v8::internal | 1119 } } // namespace v8::internal |
1131 | 1120 |
1132 #endif // V8_STUB_CACHE_H_ | 1121 #endif // V8_STUB_CACHE_H_ |
OLD | NEW |