Index: src/objects.h |
diff --git a/src/objects.h b/src/objects.h |
index a125f5b91d11a2c8febc7e0b5b3deb194059d5f2..f1bc09bc14e9fabfc5e5e3c7c0046aed5fb304bf 100644 |
--- a/src/objects.h |
+++ b/src/objects.h |
@@ -7655,6 +7655,9 @@ class SharedFunctionInfo: public HeapObject { |
// Whether this function was created from a FunctionDeclaration. |
DECL_BOOLEAN_ACCESSORS(is_declaration) |
+ // Whether this function was marked to be optimized. |
+ DECL_BOOLEAN_ACCESSORS(was_marked_for_optimization) |
+ |
// Indicates that asm->wasm conversion failed and should not be re-attempted. |
DECL_BOOLEAN_ACCESSORS(is_asm_wasm_broken) |
@@ -7904,7 +7907,7 @@ class SharedFunctionInfo: public HeapObject { |
enum CompilerHints { |
// byte 0 |
kAllowLazyCompilation, |
- kIsDeclaration, |
+ kWasMarkedForOptimization, |
kOptimizationDisabled, |
kNeverCompiled, |
kNative, |
@@ -7925,6 +7928,7 @@ class SharedFunctionInfo: public HeapObject { |
// rest of byte 2 and first two bits of byte 3 are used by FunctionKind |
// byte 3 |
kDeserialized = kFunctionKind + 10, |
+ kIsDeclaration, |
kIsAsmWasmBroken, |
kRequiresClassFieldInit, |
kIsClassFieldInitializer, |
@@ -7953,7 +7957,8 @@ class SharedFunctionInfo: public HeapObject { |
static const int kCompilerHintsSize = kIntSize; |
#endif |
- STATIC_ASSERT(SharedFunctionInfo::kCompilerHintsCount <= |
+ STATIC_ASSERT(SharedFunctionInfo::kCompilerHintsCount + |
+ SharedFunctionInfo::kCompilerHintsSmiTagSize <= |
SharedFunctionInfo::kCompilerHintsSize * kBitsPerByte); |
public: |
@@ -7970,6 +7975,9 @@ class SharedFunctionInfo: public HeapObject { |
static const int kAllFunctionKindBitsMask = FunctionKindBits::kMask |
<< kCompilerHintsSmiTagSize; |
+ static const int kWasMarkedForOptimizationBit = |
+ kWasMarkedForOptimization + kCompilerHintsSmiTagSize; |
+ |
// Constants for optimizing codegen for strict mode function and |
// native tests. |
// Allows to use byte-width instructions. |
@@ -7982,6 +7990,9 @@ class SharedFunctionInfo: public HeapObject { |
FunctionKind::kClassConstructor << kCompilerHintsSmiTagSize; |
STATIC_ASSERT(kClassConstructorBitsWithinByte < (1 << kBitsPerByte)); |
+ static const int kWasMarkedForOptimizationBitWithinByte = |
+ kWasMarkedForOptimizationBit % kBitsPerByte; |
+ |
#if defined(V8_TARGET_LITTLE_ENDIAN) |
#define BYTE_OFFSET(compiler_hint) \ |
kCompilerHintsOffset + \ |
@@ -7998,6 +8009,8 @@ class SharedFunctionInfo: public HeapObject { |
static const int kFunctionKindByteOffset = BYTE_OFFSET(kFunctionKind); |
static const int kHasDuplicateParametersByteOffset = |
BYTE_OFFSET(kHasDuplicateParameters); |
+ static const int kWasMarkedForOptimizationByteOffset = |
+ BYTE_OFFSET(kWasMarkedForOptimization); |
#undef BYTE_OFFSET |
private: |