v8
V8 is Google’s open source high-performance JavaScript and WebAssembly engine, written in C++.
Loading...
Searching...
No Matches
type-hints.h
Go to the documentation of this file.
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
#ifndef V8_OBJECTS_TYPE_HINTS_H_
6
#define V8_OBJECTS_TYPE_HINTS_H_
7
8
#include <stdint.h>
9
10
#include <iosfwd>
11
12
#include "
src/base/flags.h
"
13
14
namespace
v8
{
15
namespace
internal
{
16
17
// Type hints for an binary operation.
18
enum class
BinaryOperationHint
: uint8_t {
19
kNone
,
20
kSignedSmall
,
21
kSignedSmallInputs
,
22
kAdditiveSafeInteger
,
23
kNumber
,
24
kNumberOrOddball
,
25
kString
,
26
kStringOrStringWrapper
,
27
kBigInt
,
28
kBigInt64
,
29
kAny
30
};
31
32
inline
size_t
hash_value
(
BinaryOperationHint
hint) {
33
return
static_cast<
unsigned
>
(hint);
34
}
35
36
std::ostream&
operator<<
(std::ostream&,
BinaryOperationHint
);
37
38
// Type hints for an compare operation.
39
enum class
CompareOperationHint
: uint8_t {
40
kNone
,
41
kSignedSmall
,
42
kNumber
,
43
kNumberOrBoolean
,
44
kNumberOrOddball
,
45
kInternalizedString
,
46
kString
,
47
kSymbol
,
48
kBigInt
,
49
kBigInt64
,
50
kReceiver
,
51
kReceiverOrNullOrUndefined
,
52
kAny
53
};
54
55
inline
size_t
hash_value
(
CompareOperationHint
hint) {
56
return
static_cast<
unsigned
>
(hint);
57
}
58
59
std::ostream&
operator<<
(std::ostream&,
CompareOperationHint
);
60
61
// Type hints for for..in statements.
62
enum class
ForInHint
: uint8_t {
63
kNone
,
64
kEnumCacheKeysAndIndices
,
65
kEnumCacheKeys
,
66
kAny
67
};
68
69
std::ostream&
operator<<
(std::ostream&,
ForInHint
);
70
71
// TODO(ishell): make it an enum class.
72
enum
StringAddFlags
{
73
// Omit both parameter checks.
74
STRING_ADD_CHECK_NONE
,
75
// Convert parameters when check fails (instead of throwing an exception).
76
STRING_ADD_CONVERT_LEFT
,
77
STRING_ADD_CONVERT_RIGHT
,
78
};
79
80
std::ostream&
operator<<
(std::ostream& os,
const
StringAddFlags
& flags);
81
82
}
// namespace internal
83
}
// namespace v8
84
85
#endif
// V8_OBJECTS_TYPE_HINTS_H_
flags.h
v8::internal::CompareOperationHint
CompareOperationHint
Definition
type-hints.h:39
v8::internal::CompareOperationHint::kNumberOrBoolean
@ kNumberOrBoolean
v8::internal::CompareOperationHint::kReceiverOrNullOrUndefined
@ kReceiverOrNullOrUndefined
v8::internal::CompareOperationHint::kInternalizedString
@ kInternalizedString
v8::internal::StringAddFlags
StringAddFlags
Definition
type-hints.h:72
v8::internal::STRING_ADD_CONVERT_RIGHT
@ STRING_ADD_CONVERT_RIGHT
Definition
type-hints.h:77
v8::internal::STRING_ADD_CHECK_NONE
@ STRING_ADD_CHECK_NONE
Definition
type-hints.h:74
v8::internal::STRING_ADD_CONVERT_LEFT
@ STRING_ADD_CONVERT_LEFT
Definition
type-hints.h:76
v8::internal::PrimitiveType::kSymbol
@ kSymbol
v8::internal::PrimitiveType::kString
@ kString
v8::internal::PrimitiveType::kNumber
@ kNumber
v8::internal::hash_value
size_t hash_value(AtomicMemoryOrder order)
Definition
atomic-memory-order.h:18
v8::internal::internal
internal
Definition
wasm-objects-inl.h:458
v8::internal::BinaryOperationHint
BinaryOperationHint
Definition
type-hints.h:18
v8::internal::BinaryOperationHint::kAdditiveSafeInteger
@ kAdditiveSafeInteger
v8::internal::BinaryOperationHint::kSignedSmallInputs
@ kSignedSmallInputs
v8::internal::BinaryOperationHint::kSignedSmall
@ kSignedSmall
v8::internal::BinaryOperationHint::kNumberOrOddball
@ kNumberOrOddball
v8::internal::BinaryOperationHint::kStringOrStringWrapper
@ kStringOrStringWrapper
v8::internal::BinaryOperationHint::kBigInt64
@ kBigInt64
v8::internal::BinaryOperationHint::kBigInt
@ kBigInt
v8::internal::operator<<
std::ostream & operator<<(std::ostream &os, AtomicMemoryOrder order)
Definition
atomic-memory-order.h:22
v8::internal::BranchTargetIdentifier::kNone
@ kNone
v8::internal::CallFeedbackContent::kReceiver
@ kReceiver
v8::internal::ForInFeedback::kEnumCacheKeysAndIndices
@ kEnumCacheKeysAndIndices
v8::internal::ForInFeedback::kEnumCacheKeys
@ kEnumCacheKeys
v8::internal::ForInHint
ForInHint
Definition
type-hints.h:62
v8::internal::MachineSemantic::kAny
@ kAny
v8
Definition
api-arguments-inl.h:19
src
objects
type-hints.h
Generated on Sun Apr 6 2025 21:08:56 for v8 by
1.12.0