OLD | NEW |
1 // Copyright 2013 the V8 project authors. All rights reserved. | 1 // Copyright 2013 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 7904 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
7915 SmallMapList* receiver_maps, | 7915 SmallMapList* receiver_maps, |
7916 int argc, | 7916 int argc, |
7917 BailoutId ast_id, | 7917 BailoutId ast_id, |
7918 ApiCallType call_type) { | 7918 ApiCallType call_type) { |
7919 CallOptimization optimization(function); | 7919 CallOptimization optimization(function); |
7920 if (!optimization.is_simple_api_call()) return false; | 7920 if (!optimization.is_simple_api_call()) return false; |
7921 Handle<Map> holder_map; | 7921 Handle<Map> holder_map; |
7922 if (call_type == kCallApiFunction) { | 7922 if (call_type == kCallApiFunction) { |
7923 // Cannot embed a direct reference to the global proxy map | 7923 // Cannot embed a direct reference to the global proxy map |
7924 // as it maybe dropped on deserialization. | 7924 // as it maybe dropped on deserialization. |
7925 CHECK(!Serializer::enabled()); | 7925 CHECK(!Serializer::enabled(isolate())); |
7926 ASSERT_EQ(0, receiver_maps->length()); | 7926 ASSERT_EQ(0, receiver_maps->length()); |
7927 receiver_maps->Add(handle( | 7927 receiver_maps->Add(handle( |
7928 function->context()->global_object()->global_receiver()->map()), | 7928 function->context()->global_object()->global_receiver()->map()), |
7929 zone()); | 7929 zone()); |
7930 } | 7930 } |
7931 CallOptimization::HolderLookup holder_lookup = | 7931 CallOptimization::HolderLookup holder_lookup = |
7932 CallOptimization::kHolderNotFound; | 7932 CallOptimization::kHolderNotFound; |
7933 Handle<JSObject> api_holder = optimization.LookupHolderOfExpectedType( | 7933 Handle<JSObject> api_holder = optimization.LookupHolderOfExpectedType( |
7934 receiver_maps->first(), &holder_lookup); | 7934 receiver_maps->first(), &holder_lookup); |
7935 if (holder_lookup == CallOptimization::kHolderNotFound) return false; | 7935 if (holder_lookup == CallOptimization::kHolderNotFound) return false; |
(...skipping 166 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
8102 } | 8102 } |
8103 } | 8103 } |
8104 | 8104 |
8105 | 8105 |
8106 HValue* HOptimizedGraphBuilder::ImplicitReceiverFor(HValue* function, | 8106 HValue* HOptimizedGraphBuilder::ImplicitReceiverFor(HValue* function, |
8107 Handle<JSFunction> target) { | 8107 Handle<JSFunction> target) { |
8108 SharedFunctionInfo* shared = target->shared(); | 8108 SharedFunctionInfo* shared = target->shared(); |
8109 if (shared->strict_mode() == SLOPPY && !shared->native()) { | 8109 if (shared->strict_mode() == SLOPPY && !shared->native()) { |
8110 // Cannot embed a direct reference to the global proxy | 8110 // Cannot embed a direct reference to the global proxy |
8111 // as is it dropped on deserialization. | 8111 // as is it dropped on deserialization. |
8112 CHECK(!Serializer::enabled()); | 8112 CHECK(!Serializer::enabled(isolate())); |
8113 Handle<JSObject> global_receiver( | 8113 Handle<JSObject> global_receiver( |
8114 target->context()->global_object()->global_receiver()); | 8114 target->context()->global_object()->global_receiver()); |
8115 return Add<HConstant>(global_receiver); | 8115 return Add<HConstant>(global_receiver); |
8116 } | 8116 } |
8117 return graph()->GetConstantUndefined(); | 8117 return graph()->GetConstantUndefined(); |
8118 } | 8118 } |
8119 | 8119 |
8120 | 8120 |
8121 void HOptimizedGraphBuilder::VisitCall(Call* expr) { | 8121 void HOptimizedGraphBuilder::VisitCall(Call* expr) { |
8122 ASSERT(!HasStackOverflow()); | 8122 ASSERT(!HasStackOverflow()); |
(...skipping 3566 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
11689 if (ShouldProduceTraceOutput()) { | 11689 if (ShouldProduceTraceOutput()) { |
11690 isolate()->GetHTracer()->TraceHydrogen(name(), graph_); | 11690 isolate()->GetHTracer()->TraceHydrogen(name(), graph_); |
11691 } | 11691 } |
11692 | 11692 |
11693 #ifdef DEBUG | 11693 #ifdef DEBUG |
11694 graph_->Verify(false); // No full verify. | 11694 graph_->Verify(false); // No full verify. |
11695 #endif | 11695 #endif |
11696 } | 11696 } |
11697 | 11697 |
11698 } } // namespace v8::internal | 11698 } } // namespace v8::internal |
OLD | NEW |