LCOV - code coverage report
Current view: top level - src - type-hints.cc (source / functions) Hit Total Coverage
Test: app.info Lines: 23 73 31.5 %
Date: 2017-04-26 Functions: 3 7 42.9 %

          Line data    Source code
       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
       3             : // found in the LICENSE file.
       4             : 
       5             : #include "src/type-hints.h"
       6             : 
       7             : namespace v8 {
       8             : namespace internal {
       9             : 
      10           0 : std::ostream& operator<<(std::ostream& os, BinaryOperationHint hint) {
      11           0 :   switch (hint) {
      12             :     case BinaryOperationHint::kNone:
      13           0 :       return os << "None";
      14             :     case BinaryOperationHint::kSignedSmall:
      15           0 :       return os << "SignedSmall";
      16             :     case BinaryOperationHint::kSigned32:
      17           0 :       return os << "Signed32";
      18             :     case BinaryOperationHint::kNumberOrOddball:
      19           0 :       return os << "NumberOrOddball";
      20             :     case BinaryOperationHint::kString:
      21           0 :       return os << "String";
      22             :     case BinaryOperationHint::kAny:
      23           0 :       return os << "Any";
      24             :   }
      25           0 :   UNREACHABLE();
      26             :   return os;
      27             : }
      28             : 
      29           0 : std::ostream& operator<<(std::ostream& os, CompareOperationHint hint) {
      30           0 :   switch (hint) {
      31             :     case CompareOperationHint::kNone:
      32           0 :       return os << "None";
      33             :     case CompareOperationHint::kSignedSmall:
      34           0 :       return os << "SignedSmall";
      35             :     case CompareOperationHint::kNumber:
      36           0 :       return os << "Number";
      37             :     case CompareOperationHint::kNumberOrOddball:
      38           0 :       return os << "NumberOrOddball";
      39             :     case CompareOperationHint::kInternalizedString:
      40           0 :       return os << "InternalizedString";
      41             :     case CompareOperationHint::kString:
      42           0 :       return os << "String";
      43             :     case CompareOperationHint::kReceiver:
      44           0 :       return os << "Receiver";
      45             :     case CompareOperationHint::kAny:
      46           0 :       return os << "Any";
      47             :   }
      48           0 :   UNREACHABLE();
      49             :   return os;
      50             : }
      51             : 
      52       16011 : std::ostream& operator<<(std::ostream& os, ToBooleanHint hint) {
      53       16011 :   switch (hint) {
      54             :     case ToBooleanHint::kNone:
      55           0 :       return os << "None";
      56             :     case ToBooleanHint::kUndefined:
      57        3064 :       return os << "Undefined";
      58             :     case ToBooleanHint::kBoolean:
      59        7314 :       return os << "Boolean";
      60             :     case ToBooleanHint::kNull:
      61         979 :       return os << "Null";
      62             :     case ToBooleanHint::kSmallInteger:
      63        1207 :       return os << "SmallInteger";
      64             :     case ToBooleanHint::kReceiver:
      65        1791 :       return os << "Receiver";
      66             :     case ToBooleanHint::kString:
      67        1615 :       return os << "String";
      68             :     case ToBooleanHint::kSymbol:
      69           5 :       return os << "Symbol";
      70             :     case ToBooleanHint::kHeapNumber:
      71          36 :       return os << "HeapNumber";
      72             :     case ToBooleanHint::kAny:
      73           0 :       return os << "Any";
      74             :     case ToBooleanHint::kNeedsMap:
      75           0 :       return os << "NeedsMap";
      76             :   }
      77           0 :   UNREACHABLE();
      78             :   return os;
      79             : }
      80             : 
      81           0 : std::string ToString(ToBooleanHint hint) {
      82           0 :   switch (hint) {
      83             :     case ToBooleanHint::kNone:
      84           0 :       return "None";
      85             :     case ToBooleanHint::kUndefined:
      86           0 :       return "Undefined";
      87             :     case ToBooleanHint::kBoolean:
      88           0 :       return "Boolean";
      89             :     case ToBooleanHint::kNull:
      90           0 :       return "Null";
      91             :     case ToBooleanHint::kSmallInteger:
      92           0 :       return "SmallInteger";
      93             :     case ToBooleanHint::kReceiver:
      94           0 :       return "Receiver";
      95             :     case ToBooleanHint::kString:
      96           0 :       return "String";
      97             :     case ToBooleanHint::kSymbol:
      98           0 :       return "Symbol";
      99             :     case ToBooleanHint::kHeapNumber:
     100           0 :       return "HeapNumber";
     101             :     case ToBooleanHint::kAny:
     102           0 :       return "Any";
     103             :     case ToBooleanHint::kNeedsMap:
     104           0 :       return "NeedsMap";
     105             :   }
     106           0 :   UNREACHABLE();
     107             :   return "";
     108             : }
     109             : 
     110       21342 : std::ostream& operator<<(std::ostream& os, ToBooleanHints hints) {
     111       21342 :   if (hints == ToBooleanHint::kAny) return os << "Any";
     112       21342 :   if (hints == ToBooleanHint::kNone) return os << "None";
     113             :   bool first = true;
     114      220096 :   for (ToBooleanHints::mask_type i = 0; i < sizeof(i) * 8; ++i) {
     115      220096 :     ToBooleanHint const hint = static_cast<ToBooleanHint>(1u << i);
     116      220096 :     if (hints & hint) {
     117       16011 :       if (!first) os << "|";
     118             :       first = false;
     119       16011 :       os << hint;
     120             :     }
     121             :   }
     122             :   return os;
     123             : }
     124             : 
     125           0 : std::string ToString(ToBooleanHints hints) {
     126           0 :   if (hints == ToBooleanHint::kAny) return "Any";
     127           0 :   if (hints == ToBooleanHint::kNone) return "None";
     128             :   std::string ret;
     129             :   bool first = true;
     130           0 :   for (ToBooleanHints::mask_type i = 0; i < sizeof(i) * 8; ++i) {
     131           0 :     ToBooleanHint const hint = static_cast<ToBooleanHint>(1u << i);
     132           0 :     if (hints & hint) {
     133           0 :       if (!first) ret += "|";
     134             :       first = false;
     135           0 :       ret += ToString(hint);
     136             :     }
     137             :   }
     138             :   return ret;
     139             : }
     140             : 
     141         129 : std::ostream& operator<<(std::ostream& os, const StringAddFlags& flags) {
     142         129 :   switch (flags) {
     143             :     case STRING_ADD_CHECK_NONE:
     144          43 :       return os << "CheckNone";
     145             :     case STRING_ADD_CHECK_LEFT:
     146           0 :       return os << "CheckLeft";
     147             :     case STRING_ADD_CHECK_RIGHT:
     148           0 :       return os << "CheckRight";
     149             :     case STRING_ADD_CHECK_BOTH:
     150           0 :       return os << "CheckBoth";
     151             :     case STRING_ADD_CONVERT_LEFT:
     152          43 :       return os << "ConvertLeft";
     153             :     case STRING_ADD_CONVERT_RIGHT:
     154          43 :       return os << "ConvertRight";
     155             :     case STRING_ADD_CONVERT:
     156             :       break;
     157             :   }
     158           0 :   UNREACHABLE();
     159             :   return os;
     160             : }
     161             : 
     162             : }  // namespace internal
     163             : }  // namespace v8

Generated by: LCOV version 1.10