LCOV - code coverage report
Current view: top level - src/objects - oddball-inl.h (source / functions) Hit Total Coverage
Test: app.info Lines: 11 11 100.0 %
Date: 2019-04-18 Functions: 5 5 100.0 %

          Line data    Source code
       1             : // Copyright 2018 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_ODDBALL_INL_H_
       6             : #define V8_OBJECTS_ODDBALL_INL_H_
       7             : 
       8             : #include "src/objects/oddball.h"
       9             : 
      10             : #include "src/handles.h"
      11             : #include "src/heap/heap-write-barrier-inl.h"
      12             : #include "src/objects-inl.h"
      13             : #include "src/objects/string-inl.h"
      14             : 
      15             : // Has to be the last include (doesn't have include guards):
      16             : #include "src/objects/object-macros.h"
      17             : 
      18             : namespace v8 {
      19             : namespace internal {
      20             : 
      21             : OBJECT_CONSTRUCTORS_IMPL(Oddball, HeapObject)
      22             : 
      23             : CAST_ACCESSOR(Oddball)
      24             : 
      25             : double Oddball::to_number_raw() const {
      26             :   return READ_DOUBLE_FIELD(*this, kToNumberRawOffset);
      27             : }
      28             : 
      29             : void Oddball::set_to_number_raw(double value) {
      30         560 :   WRITE_DOUBLE_FIELD(*this, kToNumberRawOffset, value);
      31             : }
      32             : 
      33             : void Oddball::set_to_number_raw_as_bits(uint64_t bits) {
      34         112 :   WRITE_UINT64_FIELD(*this, kToNumberRawOffset, bits);
      35             : }
      36             : 
      37     2634055 : ACCESSORS(Oddball, to_string, String, kToStringOffset)
      38     3117176 : ACCESSORS(Oddball, to_number, Object, kToNumberOffset)
      39        5058 : ACCESSORS(Oddball, type_of, String, kTypeOfOffset)
      40             : 
      41      234485 : byte Oddball::kind() const {
      42    27043090 :   return Smi::ToInt(READ_FIELD(*this, kKindOffset));
      43             : }
      44             : 
      45             : void Oddball::set_kind(byte value) {
      46         952 :   WRITE_FIELD(*this, kKindOffset, Smi::FromInt(value));
      47             : }
      48             : 
      49             : // static
      50     3113816 : Handle<Object> Oddball::ToNumber(Isolate* isolate, Handle<Oddball> input) {
      51     3113816 :   return Handle<Object>(input->to_number(), isolate);
      52             : }
      53             : 
      54             : bool HeapObject::IsBoolean() const {
      55    99169343 :   return IsOddball() &&
      56             :          ((Oddball::cast(*this)->kind() & Oddball::kNotBooleanMask) == 0);
      57             : }
      58             : 
      59             : }  // namespace internal
      60             : }  // namespace v8
      61             : 
      62             : #include "src/objects/object-macros-undef.h"
      63             : 
      64             : #endif  // V8_OBJECTS_ODDBALL_INL_H_

Generated by: LCOV version 1.10