LCOV - code coverage report
Current view: top level - src/objects - script-inl.h (source / functions) Hit Total Coverage
Test: app.info Lines: 52 52 100.0 %
Date: 2019-02-19 Functions: 30 30 100.0 %

          Line data    Source code
       1             : // Copyright 2017 the V8 project authors. All rights reserved.
       2             : // Use of this source code is governed by a BSD-style license that can be
       3             : // found in the LICENSE file.
       4             : 
       5             : #ifndef V8_OBJECTS_SCRIPT_INL_H_
       6             : #define V8_OBJECTS_SCRIPT_INL_H_
       7             : 
       8             : #include "src/objects/script.h"
       9             : 
      10             : #include "src/objects/shared-function-info.h"
      11             : #include "src/objects/smi-inl.h"
      12             : #include "src/objects/string-inl.h"
      13             : 
      14             : // Has to be the last include (doesn't have include guards):
      15             : #include "src/objects/object-macros.h"
      16             : 
      17             : namespace v8 {
      18             : namespace internal {
      19             : 
      20   106026582 : OBJECT_CONSTRUCTORS_IMPL(Script, Struct)
      21             : 
      22             : NEVER_READ_ONLY_SPACE_IMPL(Script)
      23             : 
      24    53013292 : CAST_ACCESSOR(Script)
      25             : 
      26    38507168 : ACCESSORS(Script, source, Object, kSourceOffset)
      27    16605862 : ACCESSORS(Script, name, Object, kNameOffset)
      28    26396032 : SMI_ACCESSORS(Script, id, kIdOffset)
      29    13938915 : SMI_ACCESSORS(Script, line_offset, kLineOffsetOffset)
      30     4187195 : SMI_ACCESSORS(Script, column_offset, kColumnOffsetOffset)
      31    36577844 : ACCESSORS(Script, context_data, Object, kContextOffset)
      32    49886302 : SMI_ACCESSORS(Script, type, kTypeOffset)
      33    27974071 : ACCESSORS(Script, line_ends, Object, kLineEndsOffset)
      34    22712369 : ACCESSORS_CHECKED(Script, eval_from_shared_or_wrapped_arguments, Object,
      35             :                   kEvalFromSharedOrWrappedArgumentsOffset,
      36             :                   this->type() != TYPE_WASM)
      37     3852202 : SMI_ACCESSORS_CHECKED(Script, eval_from_position, kEvalFromPositionOffset,
      38             :                       this->type() != TYPE_WASM)
      39    52663745 : ACCESSORS(Script, shared_function_infos, WeakFixedArray,
      40             :           kSharedFunctionInfosOffset)
      41    25968975 : SMI_ACCESSORS(Script, flags, kFlagsOffset)
      42      828481 : ACCESSORS(Script, source_url, Object, kSourceUrlOffset)
      43       81656 : ACCESSORS(Script, source_mapping_url, Object, kSourceMappingUrlOffset)
      44    15235298 : ACCESSORS(Script, host_defined_options, FixedArray, kHostDefinedOptionsOffset)
      45     6152417 : ACCESSORS_CHECKED(Script, wasm_module_object, Object,
      46             :                   kEvalFromSharedOrWrappedArgumentsOffset,
      47             :                   this->type() == TYPE_WASM)
      48             : 
      49     1716374 : bool Script::is_wrapped() const {
      50     3432749 :   return eval_from_shared_or_wrapped_arguments()->IsFixedArray();
      51             : }
      52             : 
      53        3250 : bool Script::has_eval_from_shared() const {
      54        6500 :   return eval_from_shared_or_wrapped_arguments()->IsSharedFunctionInfo();
      55             : }
      56             : 
      57             : void Script::set_eval_from_shared(SharedFunctionInfo shared,
      58             :                                   WriteBarrierMode mode) {
      59             :   DCHECK(!is_wrapped());
      60     1305223 :   set_eval_from_shared_or_wrapped_arguments(shared, mode);
      61             : }
      62             : 
      63        2755 : SharedFunctionInfo Script::eval_from_shared() const {
      64             :   DCHECK(has_eval_from_shared());
      65        2755 :   return SharedFunctionInfo::cast(eval_from_shared_or_wrapped_arguments());
      66             : }
      67             : 
      68             : void Script::set_wrapped_arguments(FixedArray value, WriteBarrierMode mode) {
      69             :   DCHECK(!has_eval_from_shared());
      70          74 :   set_eval_from_shared_or_wrapped_arguments(value, mode);
      71             : }
      72             : 
      73          99 : FixedArray Script::wrapped_arguments() const {
      74             :   DCHECK(is_wrapped());
      75          99 :   return FixedArray::cast(eval_from_shared_or_wrapped_arguments());
      76             : }
      77             : 
      78     2514117 : Script::CompilationType Script::compilation_type() {
      79             :   return BooleanBit::get(flags(), kCompilationTypeBit) ? COMPILATION_TYPE_EVAL
      80     2514117 :                                                        : COMPILATION_TYPE_HOST;
      81             : }
      82      953204 : void Script::set_compilation_type(CompilationType type) {
      83             :   set_flags(BooleanBit::set(flags(), kCompilationTypeBit,
      84             :                             type == COMPILATION_TYPE_EVAL));
      85      953204 : }
      86       33830 : Script::CompilationState Script::compilation_state() {
      87             :   return BooleanBit::get(flags(), kCompilationStateBit)
      88             :              ? COMPILATION_STATE_COMPILED
      89       33830 :              : COMPILATION_STATE_INITIAL;
      90             : }
      91      999838 : void Script::set_compilation_state(CompilationState state) {
      92             :   set_flags(BooleanBit::set(flags(), kCompilationStateBit,
      93             :                             state == COMPILATION_STATE_COMPILED));
      94      999839 : }
      95     3869126 : ScriptOriginOptions Script::origin_options() {
      96     3869127 :   return ScriptOriginOptions((flags() & kOriginOptionsMask) >>
      97     7738254 :                              kOriginOptionsShift);
      98             : }
      99     1460569 : void Script::set_origin_options(ScriptOriginOptions origin_options) {
     100             :   DCHECK(!(origin_options.Flags() & ~((1 << kOriginOptionsSize) - 1)));
     101     1460569 :   set_flags((flags() & ~kOriginOptionsMask) |
     102     1460569 :             (origin_options.Flags() << kOriginOptionsShift));
     103     1460569 : }
     104             : 
     105     2059343 : bool Script::HasValidSource() {
     106     2059343 :   Object src = this->source();
     107     2059343 :   if (!src->IsString()) return true;
     108     2059343 :   String src_str = String::cast(src);
     109     2059343 :   if (!StringShape(src_str).IsExternal()) return true;
     110       15884 :   if (src_str->IsOneByteRepresentation()) {
     111       15844 :     return ExternalOneByteString::cast(src)->resource() != nullptr;
     112          40 :   } else if (src_str->IsTwoByteRepresentation()) {
     113          40 :     return ExternalTwoByteString::cast(src)->resource() != nullptr;
     114             :   }
     115             :   return true;
     116             : }
     117             : 
     118             : }  // namespace internal
     119             : }  // namespace v8
     120             : 
     121             : #include "src/objects/object-macros-undef.h"
     122             : 
     123             : #endif  // V8_OBJECTS_SCRIPT_INL_H_

Generated by: LCOV version 1.10