| 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: | 
|  |