Index: src/objects.h |
diff --git a/src/objects.h b/src/objects.h |
index 75dafcf541897db1a2d2530f8c81aa3a2abf35a8..34349d5b1e160f99b9e020516c60f371a8170efb 100644 |
--- a/src/objects.h |
+++ b/src/objects.h |
@@ -7334,6 +7334,13 @@ class SharedFunctionInfo: public HeapObject { |
inline int start_position_and_type() const; |
inline void set_start_position_and_type(int value); |
+ // [end_position_and_is_blackboxed]: Field used to store both the source code |
+ // position, whether or not the function is blackboxed, and whether or not the |
+ // blackboxed state is computed in the two |
+ // least significants bits. |
+ inline int end_position_and_is_blackboxed() const; |
+ inline void set_end_position_and_is_blackboxed(int value); |
+ |
// The function is subject to debugging if a debug info is attached. |
inline bool HasDebugInfo(); |
inline DebugInfo* GetDebugInfo(); |
@@ -7347,6 +7354,9 @@ class SharedFunctionInfo: public HeapObject { |
// The function's name if it is non-empty, otherwise the inferred name. |
String* DebugName(); |
+ // The function is blackboxed in debugger. |
+ bool DebugIsBlackboxed(); |
+ |
// The function cannot cause any side effects. |
bool HasNoSideEffect(); |
@@ -7361,16 +7371,22 @@ class SharedFunctionInfo: public HeapObject { |
inline int start_position() const; |
inline void set_start_position(int start_position); |
- // End position of this function in the script source. |
- inline int end_position() const; |
- inline void set_end_position(int end_position); |
- |
// Is this function a named function expression in the source code. |
DECL_BOOLEAN_ACCESSORS(is_named_expression) |
// Is this function a top-level function (scripts, evals). |
DECL_BOOLEAN_ACCESSORS(is_toplevel) |
+ // End position of this function in the script source. |
+ inline int end_position() const; |
+ inline void set_end_position(int end_position); |
+ |
+ // Indicates that the function should be skipped during stepping. |
+ DECL_BOOLEAN_ACCESSORS(debug_is_blackboxed) |
+ |
+ // Indicates that |debug_is_blackboxed| has been computed and set. |
+ DECL_BOOLEAN_ACCESSORS(computed_debug_is_blackboxed) |
+ |
// Bit field containing various information collected by the compiler to |
// drive optimization. |
inline int compiler_hints() const; |
@@ -7614,10 +7630,10 @@ class SharedFunctionInfo: public HeapObject { |
kExpectedNofPropertiesOffset + kPointerSize; |
static const int kStartPositionAndTypeOffset = |
kNumLiteralsOffset + kPointerSize; |
- static const int kEndPositionOffset = |
+ static const int kEndPositionAndIsBlackboxedOffset = |
kStartPositionAndTypeOffset + kPointerSize; |
static const int kFunctionTokenPositionOffset = |
- kEndPositionOffset + kPointerSize; |
+ kEndPositionAndIsBlackboxedOffset + kPointerSize; |
static const int kCompilerHintsOffset = |
kFunctionTokenPositionOffset + kPointerSize; |
static const int kOptCountAndBailoutReasonOffset = |
@@ -7650,10 +7666,10 @@ class SharedFunctionInfo: public HeapObject { |
static const int kNumLiteralsOffset = |
kExpectedNofPropertiesOffset + kIntSize; |
- static const int kEndPositionOffset = |
+ static const int kEndPositionAndIsBlackboxedOffset = |
kNumLiteralsOffset + kIntSize; |
static const int kStartPositionAndTypeOffset = |
- kEndPositionOffset + kIntSize; |
+ kEndPositionAndIsBlackboxedOffset + kIntSize; |
static const int kFunctionTokenPositionOffset = |
kStartPositionAndTypeOffset + kIntSize; |
@@ -7683,9 +7699,11 @@ class SharedFunctionInfo: public HeapObject { |
static const int kStartPositionAndTypeOffset = |
kExpectedNofPropertiesOffset + kIntSize; |
- static const int kEndPositionOffset = kStartPositionAndTypeOffset + kIntSize; |
+ static const int kEndPositionAndIsBlackboxedOffset = |
+ kStartPositionAndTypeOffset + kIntSize; |
- static const int kCompilerHintsOffset = kEndPositionOffset + kIntSize; |
+ static const int kCompilerHintsOffset = |
+ kEndPositionAndIsBlackboxedOffset + kIntSize; |
static const int kFunctionTokenPositionOffset = |
kCompilerHintsOffset + kIntSize; |
@@ -7714,13 +7732,16 @@ class SharedFunctionInfo: public HeapObject { |
kLastPointerFieldOffset + kPointerSize, kSize> |
BodyDescriptorWeakCode; |
- // Bit positions in start_position_and_type. |
- // The source code start position is in the 30 most significant bits of |
- // the start_position_and_type field. |
+ // Bit positions in start_position_and_type and |
+ // end_position_and_is_blackboxed. |
+ // The source code position is in the 30 most significant bits of |
+ // the field. |
static const int kIsNamedExpressionBit = 0; |
static const int kIsTopLevelBit = 1; |
- static const int kStartPositionShift = 2; |
- static const int kStartPositionMask = ~((1 << kStartPositionShift) - 1); |
+ static const int kIsBlackboxedBit = 0; |
+ static const int kIsBlackboxedComputedBit = 1; |
+ static const int kPositionShift = 2; |
+ static const int kPositionMask = ~((1 << kPositionShift) - 1); |
// Bit positions in compiler_hints. |
enum CompilerHints { |