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