• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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/objects/type-hints.h"
6 
7 namespace v8 {
8 namespace internal {
9 
operator <<(std::ostream & os,BinaryOperationHint hint)10 std::ostream& operator<<(std::ostream& os, BinaryOperationHint hint) {
11   switch (hint) {
12     case BinaryOperationHint::kNone:
13       return os << "None";
14     case BinaryOperationHint::kSignedSmall:
15       return os << "SignedSmall";
16     case BinaryOperationHint::kSignedSmallInputs:
17       return os << "SignedSmallInputs";
18     case BinaryOperationHint::kNumber:
19       return os << "Number";
20     case BinaryOperationHint::kNumberOrOddball:
21       return os << "NumberOrOddball";
22     case BinaryOperationHint::kString:
23       return os << "String";
24     case BinaryOperationHint::kBigInt:
25       return os << "BigInt";
26     case BinaryOperationHint::kAny:
27       return os << "Any";
28   }
29   UNREACHABLE();
30 }
31 
operator <<(std::ostream & os,CompareOperationHint hint)32 std::ostream& operator<<(std::ostream& os, CompareOperationHint hint) {
33   switch (hint) {
34     case CompareOperationHint::kNone:
35       return os << "None";
36     case CompareOperationHint::kSignedSmall:
37       return os << "SignedSmall";
38     case CompareOperationHint::kNumber:
39       return os << "Number";
40     case CompareOperationHint::kNumberOrBoolean:
41       return os << "NumberOrBoolean";
42     case CompareOperationHint::kNumberOrOddball:
43       return os << "NumberOrOddball";
44     case CompareOperationHint::kInternalizedString:
45       return os << "InternalizedString";
46     case CompareOperationHint::kString:
47       return os << "String";
48     case CompareOperationHint::kSymbol:
49       return os << "Symbol";
50     case CompareOperationHint::kBigInt:
51       return os << "BigInt";
52     case CompareOperationHint::kReceiver:
53       return os << "Receiver";
54     case CompareOperationHint::kReceiverOrNullOrUndefined:
55       return os << "ReceiverOrNullOrUndefined";
56     case CompareOperationHint::kAny:
57       return os << "Any";
58   }
59   UNREACHABLE();
60 }
61 
operator <<(std::ostream & os,ForInHint hint)62 std::ostream& operator<<(std::ostream& os, ForInHint hint) {
63   switch (hint) {
64     case ForInHint::kNone:
65       return os << "None";
66     case ForInHint::kEnumCacheKeys:
67       return os << "EnumCacheKeys";
68     case ForInHint::kEnumCacheKeysAndIndices:
69       return os << "EnumCacheKeysAndIndices";
70     case ForInHint::kAny:
71       return os << "Any";
72   }
73   UNREACHABLE();
74 }
75 
operator <<(std::ostream & os,const StringAddFlags & flags)76 std::ostream& operator<<(std::ostream& os, const StringAddFlags& flags) {
77   switch (flags) {
78     case STRING_ADD_CHECK_NONE:
79       return os << "CheckNone";
80     case STRING_ADD_CONVERT_LEFT:
81       return os << "ConvertLeft";
82     case STRING_ADD_CONVERT_RIGHT:
83       return os << "ConvertRight";
84   }
85   UNREACHABLE();
86 }
87 
88 }  // namespace internal
89 }  // namespace v8
90