| OLD | NEW |
| 1 // Copyright 2013 the V8 project authors. All rights reserved. | 1 // Copyright 2013 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 #include "src/hydrogen.h" | 5 #include "src/hydrogen.h" |
| 6 | 6 |
| 7 #include <sstream> | 7 #include <sstream> |
| 8 | 8 |
| 9 #include "src/v8.h" | 9 #include "src/v8.h" |
| 10 | 10 |
| (...skipping 8637 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 8648 int argc, | 8648 int argc, |
| 8649 BailoutId ast_id, | 8649 BailoutId ast_id, |
| 8650 ApiCallType call_type) { | 8650 ApiCallType call_type) { |
| 8651 if (function->context()->native_context() != | 8651 if (function->context()->native_context() != |
| 8652 top_info()->closure()->context()->native_context()) { | 8652 top_info()->closure()->context()->native_context()) { |
| 8653 return false; | 8653 return false; |
| 8654 } | 8654 } |
| 8655 CallOptimization optimization(function); | 8655 CallOptimization optimization(function); |
| 8656 if (!optimization.is_simple_api_call()) return false; | 8656 if (!optimization.is_simple_api_call()) return false; |
| 8657 Handle<Map> holder_map; | 8657 Handle<Map> holder_map; |
| 8658 for (int i = 0; i < receiver_maps->length(); ++i) { |
| 8659 auto map = receiver_maps->at(i); |
| 8660 // Don't inline calls to receivers requiring accesschecks. |
| 8661 if (map->is_access_check_needed()) return false; |
| 8662 } |
| 8658 if (call_type == kCallApiFunction) { | 8663 if (call_type == kCallApiFunction) { |
| 8659 // Cannot embed a direct reference to the global proxy map | 8664 // Cannot embed a direct reference to the global proxy map |
| 8660 // as it maybe dropped on deserialization. | 8665 // as it maybe dropped on deserialization. |
| 8661 CHECK(!isolate()->serializer_enabled()); | 8666 CHECK(!isolate()->serializer_enabled()); |
| 8662 DCHECK_EQ(0, receiver_maps->length()); | 8667 DCHECK_EQ(0, receiver_maps->length()); |
| 8663 receiver_maps->Add(handle(function->global_proxy()->map()), zone()); | 8668 receiver_maps->Add(handle(function->global_proxy()->map()), zone()); |
| 8664 } | 8669 } |
| 8665 CallOptimization::HolderLookup holder_lookup = | 8670 CallOptimization::HolderLookup holder_lookup = |
| 8666 CallOptimization::kHolderNotFound; | 8671 CallOptimization::kHolderNotFound; |
| 8667 Handle<JSObject> api_holder = optimization.LookupHolderOfExpectedType( | 8672 Handle<JSObject> api_holder = optimization.LookupHolderOfExpectedType( |
| (...skipping 4730 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 13398 if (ShouldProduceTraceOutput()) { | 13403 if (ShouldProduceTraceOutput()) { |
| 13399 isolate()->GetHTracer()->TraceHydrogen(name(), graph_); | 13404 isolate()->GetHTracer()->TraceHydrogen(name(), graph_); |
| 13400 } | 13405 } |
| 13401 | 13406 |
| 13402 #ifdef DEBUG | 13407 #ifdef DEBUG |
| 13403 graph_->Verify(false); // No full verify. | 13408 graph_->Verify(false); // No full verify. |
| 13404 #endif | 13409 #endif |
| 13405 } | 13410 } |
| 13406 | 13411 |
| 13407 } } // namespace v8::internal | 13412 } } // namespace v8::internal |
| OLD | NEW |