diff options
Diffstat (limited to 'deps/v8/src/objects/shared-function-info-inl.h')
-rw-r--r-- | deps/v8/src/objects/shared-function-info-inl.h | 25 |
1 files changed, 15 insertions, 10 deletions
diff --git a/deps/v8/src/objects/shared-function-info-inl.h b/deps/v8/src/objects/shared-function-info-inl.h index 9778db5d90..6023c3b828 100644 --- a/deps/v8/src/objects/shared-function-info-inl.h +++ b/deps/v8/src/objects/shared-function-info-inl.h @@ -200,14 +200,13 @@ int SharedFunctionInfo::function_token_position() const { } } -BIT_FIELD_ACCESSORS(SharedFunctionInfo, flags, is_wrapped, - SharedFunctionInfo::IsWrappedBit) +BIT_FIELD_ACCESSORS(SharedFunctionInfo, flags, syntax_kind, + SharedFunctionInfo::FunctionSyntaxKindBits) + BIT_FIELD_ACCESSORS(SharedFunctionInfo, flags, allows_lazy_compilation, SharedFunctionInfo::AllowLazyCompilationBit) BIT_FIELD_ACCESSORS(SharedFunctionInfo, flags, has_duplicate_parameters, SharedFunctionInfo::HasDuplicateParametersBit) -BIT_FIELD_ACCESSORS(SharedFunctionInfo, flags, is_declaration, - SharedFunctionInfo::IsDeclarationBit) BIT_FIELD_ACCESSORS(SharedFunctionInfo, flags, native, SharedFunctionInfo::IsNativeBit) @@ -219,13 +218,9 @@ BIT_FIELD_ACCESSORS(SharedFunctionInfo, flags, BIT_FIELD_ACCESSORS(SharedFunctionInfo, flags, name_should_print_as_anonymous, SharedFunctionInfo::NameShouldPrintAsAnonymousBit) -BIT_FIELD_ACCESSORS(SharedFunctionInfo, flags, is_anonymous_expression, - SharedFunctionInfo::IsAnonymousExpressionBit) BIT_FIELD_ACCESSORS(SharedFunctionInfo, flags, has_reported_binary_coverage, SharedFunctionInfo::HasReportedBinaryCoverageBit) -BIT_FIELD_ACCESSORS(SharedFunctionInfo, flags, is_named_expression, - SharedFunctionInfo::IsNamedExpressionBit) BIT_FIELD_ACCESSORS(SharedFunctionInfo, flags, is_toplevel, SharedFunctionInfo::IsTopLevelBit) BIT_FIELD_ACCESSORS(SharedFunctionInfo, flags, @@ -271,6 +266,10 @@ void SharedFunctionInfo::set_kind(FunctionKind kind) { UpdateFunctionMapIndex(); } +bool SharedFunctionInfo::is_wrapped() const { + return syntax_kind() == FunctionSyntaxKind::kWrapped; +} + bool SharedFunctionInfo::needs_home_object() const { return NeedsHomeObjectBit::decode(flags()); } @@ -359,6 +358,11 @@ void SharedFunctionInfo::set_scope_info(ScopeInfo scope_info, if (HasInferredName() && inferred_name().length() != 0) { scope_info.SetInferredFunctionName(inferred_name()); } + set_raw_scope_info(scope_info, mode); +} + +void SharedFunctionInfo::set_raw_scope_info(ScopeInfo scope_info, + WriteBarrierMode mode) { WRITE_FIELD(*this, kNameOrScopeInfoOffset, scope_info); CONDITIONAL_WRITE_BARRIER(*this, kNameOrScopeInfoOffset, scope_info, mode); } @@ -572,7 +576,8 @@ UncompiledData SharedFunctionInfo::uncompiled_data() const { } void SharedFunctionInfo::set_uncompiled_data(UncompiledData uncompiled_data) { - DCHECK(function_data() == Smi::FromEnum(Builtins::kCompileLazy)); + DCHECK(function_data() == Smi::FromEnum(Builtins::kCompileLazy) || + HasUncompiledData()); DCHECK(uncompiled_data.IsUncompiledData()); set_function_data(uncompiled_data); } @@ -622,7 +627,7 @@ void SharedFunctionInfo::ClearPreparseData() { data.address() + UncompiledDataWithoutPreparseData::kSize, UncompiledDataWithPreparseData::kSize - UncompiledDataWithoutPreparseData::kSize, - ClearRecordedSlots::kNo); + ClearRecordedSlots::kYes); // Ensure that the clear was successful. DCHECK(HasUncompiledDataWithoutPreparseData()); |