OLD | NEW |
1 // Copyright 2015 the V8 project authors. All rights reserved. | 1 // Copyright 2015 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/objects.h" | 5 #include "src/objects.h" |
6 | 6 |
7 #include <cmath> | 7 #include <cmath> |
8 #include <iomanip> | 8 #include <iomanip> |
9 #include <memory> | 9 #include <memory> |
10 #include <sstream> | 10 #include <sstream> |
(...skipping 13565 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
13576 | 13576 |
13577 shared->set_expected_nof_properties(estimate); | 13577 shared->set_expected_nof_properties(estimate); |
13578 } | 13578 } |
13579 | 13579 |
13580 } // namespace | 13580 } // namespace |
13581 | 13581 |
13582 void SharedFunctionInfo::InitFromFunctionLiteral( | 13582 void SharedFunctionInfo::InitFromFunctionLiteral( |
13583 Handle<SharedFunctionInfo> shared_info, FunctionLiteral* lit) { | 13583 Handle<SharedFunctionInfo> shared_info, FunctionLiteral* lit) { |
13584 // When adding fields here, make sure DeclarationScope::AnalyzePartially is | 13584 // When adding fields here, make sure DeclarationScope::AnalyzePartially is |
13585 // updated accordingly. | 13585 // updated accordingly. |
13586 shared_info->set_length(lit->scope()->default_function_length()); | 13586 shared_info->set_length(lit->scope()->arity()); |
13587 shared_info->set_internal_formal_parameter_count(lit->parameter_count()); | 13587 shared_info->set_internal_formal_parameter_count(lit->parameter_count()); |
13588 shared_info->set_function_token_position(lit->function_token_position()); | 13588 shared_info->set_function_token_position(lit->function_token_position()); |
13589 shared_info->set_start_position(lit->start_position()); | 13589 shared_info->set_start_position(lit->start_position()); |
13590 shared_info->set_end_position(lit->end_position()); | 13590 shared_info->set_end_position(lit->end_position()); |
13591 shared_info->set_is_declaration(lit->is_declaration()); | 13591 shared_info->set_is_declaration(lit->is_declaration()); |
13592 shared_info->set_is_named_expression(lit->is_named_expression()); | 13592 shared_info->set_is_named_expression(lit->is_named_expression()); |
13593 shared_info->set_is_anonymous_expression(lit->is_anonymous_expression()); | 13593 shared_info->set_is_anonymous_expression(lit->is_anonymous_expression()); |
13594 shared_info->set_inferred_name(*lit->inferred_name()); | 13594 shared_info->set_inferred_name(*lit->inferred_name()); |
13595 shared_info->set_allows_lazy_compilation(lit->AllowsLazyCompilation()); | 13595 shared_info->set_allows_lazy_compilation(lit->AllowsLazyCompilation()); |
13596 shared_info->set_allows_lazy_compilation_without_context( | 13596 shared_info->set_allows_lazy_compilation_without_context( |
13597 lit->AllowsLazyCompilationWithoutContext()); | 13597 lit->AllowsLazyCompilationWithoutContext()); |
13598 shared_info->set_language_mode(lit->language_mode()); | 13598 shared_info->set_language_mode(lit->language_mode()); |
13599 shared_info->set_uses_arguments(lit->scope()->arguments() != NULL); | 13599 shared_info->set_uses_arguments(lit->scope()->arguments() != NULL); |
13600 shared_info->set_has_duplicate_parameters(lit->has_duplicate_parameters()); | 13600 shared_info->set_has_duplicate_parameters(lit->has_duplicate_parameters()); |
13601 shared_info->set_is_function(lit->is_function()); | 13601 shared_info->set_is_function(lit->is_function()); |
13602 shared_info->set_never_compiled(true); | 13602 shared_info->set_never_compiled(true); |
13603 shared_info->set_kind(lit->kind()); | 13603 shared_info->set_kind(lit->kind()); |
13604 if (!IsConstructable(lit->kind(), lit->language_mode())) { | 13604 if (!IsConstructable(lit->kind(), lit->language_mode())) { |
13605 shared_info->SetConstructStub( | 13605 shared_info->SetConstructStub( |
13606 *shared_info->GetIsolate()->builtins()->ConstructedNonConstructable()); | 13606 *shared_info->GetIsolate()->builtins()->ConstructedNonConstructable()); |
13607 } | 13607 } |
13608 shared_info->set_needs_home_object(lit->scope()->NeedsHomeObject()); | 13608 shared_info->set_needs_home_object(lit->scope()->NeedsHomeObject()); |
13609 shared_info->set_asm_function(lit->scope()->asm_function()); | 13609 shared_info->set_asm_function(lit->scope()->asm_function()); |
| 13610 shared_info->set_requires_class_field_init(lit->requires_class_field_init()); |
| 13611 shared_info->set_is_class_field_initializer( |
| 13612 lit->is_class_field_initializer()); |
13610 SetExpectedNofPropertiesFromEstimate(shared_info, lit); | 13613 SetExpectedNofPropertiesFromEstimate(shared_info, lit); |
13611 } | 13614 } |
13612 | 13615 |
13613 | 13616 |
13614 bool SharedFunctionInfo::VerifyBailoutId(BailoutId id) { | 13617 bool SharedFunctionInfo::VerifyBailoutId(BailoutId id) { |
13615 DCHECK(!id.IsNone()); | 13618 DCHECK(!id.IsNone()); |
13616 Code* unoptimized = code(); | 13619 Code* unoptimized = code(); |
13617 DeoptimizationOutputData* data = | 13620 DeoptimizationOutputData* data = |
13618 DeoptimizationOutputData::cast(unoptimized->deoptimization_data()); | 13621 DeoptimizationOutputData::cast(unoptimized->deoptimization_data()); |
13619 unsigned ignore = Deoptimizer::GetOutputInfo(data, id, this); | 13622 unsigned ignore = Deoptimizer::GetOutputInfo(data, id, this); |
(...skipping 5797 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
19417 for (PrototypeIterator iter(isolate, this, kStartAtReceiver, | 19420 for (PrototypeIterator iter(isolate, this, kStartAtReceiver, |
19418 PrototypeIterator::END_AT_NULL); | 19421 PrototypeIterator::END_AT_NULL); |
19419 !iter.IsAtEnd(); iter.AdvanceIgnoringProxies()) { | 19422 !iter.IsAtEnd(); iter.AdvanceIgnoringProxies()) { |
19420 if (iter.GetCurrent<Object>()->IsJSProxy()) return true; | 19423 if (iter.GetCurrent<Object>()->IsJSProxy()) return true; |
19421 } | 19424 } |
19422 return false; | 19425 return false; |
19423 } | 19426 } |
19424 | 19427 |
19425 } // namespace internal | 19428 } // namespace internal |
19426 } // namespace v8 | 19429 } // namespace v8 |
OLD | NEW |