Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(509)

Unified Diff: src/objects.h

Issue 2633803002: [inspector] implemented blackboxing inside v8 (Closed)
Patch Set: fixed tests Created 3 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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 {
« no previous file with comments | « src/inspector/v8-debugger-script.cc ('k') | src/objects.cc » ('j') | src/objects.cc » ('J')

Powered by Google App Engine
This is Rietveld 408576698