Index: src/objects.h |
diff --git a/src/objects.h b/src/objects.h |
index 164f59bf53193dfd2123b4c93ada6a718018d1eb..48ccc099073a32254f9f5731518326602692e61d 100644 |
--- a/src/objects.h |
+++ b/src/objects.h |
@@ -6768,24 +6768,35 @@ class SharedFunctionInfo: public HeapObject { |
// [function data]: This field holds some additional data for function. |
// Currently it has one of: |
// - a FunctionTemplateInfo to make benefit the API [IsApiFunction()]. |
- // - a Smi identifying a builtin function [HasBuiltinFunctionId()]. |
// - a BytecodeArray for the interpreter [HasBytecodeArray()]. |
- // In the long run we don't want all functions to have this field but |
- // we can fix that when we have a better model for storing hidden data |
- // on objects. |
DECL_ACCESSORS(function_data, Object) |
inline bool IsApiFunction(); |
inline FunctionTemplateInfo* get_api_func_data(); |
inline void set_api_func_data(FunctionTemplateInfo* data); |
- inline bool HasBuiltinFunctionId(); |
- inline BuiltinFunctionId builtin_function_id(); |
- inline void set_builtin_function_id(BuiltinFunctionId id); |
inline bool HasBytecodeArray(); |
inline BytecodeArray* bytecode_array(); |
inline void set_bytecode_array(BytecodeArray* bytecode); |
inline void ClearBytecodeArray(); |
+ // [function identifier]: This field holds an additional identifier for the |
+ // function. |
+ // - a Smi identifying a builtin function [HasBuiltinFunctionId()]. |
+ // - a String identifying the function's inferred name [HasInferredName()]. |
+ // The inferred_name is inferred from variable or property |
+ // assignment of this function. It is used to facilitate debugging and |
+ // profiling of JavaScript code written in OO style, where almost |
+ // all functions are anonymous but are assigned to object |
+ // properties. |
+ DECL_ACCESSORS(function_identifier, Object) |
+ |
+ inline bool HasBuiltinFunctionId(); |
+ inline BuiltinFunctionId builtin_function_id(); |
+ inline void set_builtin_function_id(BuiltinFunctionId id); |
+ inline bool HasInferredName(); |
+ inline String* inferred_name(); |
+ inline void set_inferred_name(String* inferred_name); |
+ |
// [script info]: Script from which the function originates. |
DECL_ACCESSORS(script, Object) |
@@ -6811,13 +6822,6 @@ class SharedFunctionInfo: public HeapObject { |
// [debug info]: Debug information. |
DECL_ACCESSORS(debug_info, Object) |
- // [inferred name]: Name inferred from variable or property |
- // assignment of this function. Used to facilitate debugging and |
- // profiling of JavaScript code written in OO style, where almost |
- // all functions are anonymous but are assigned to object |
- // properties. |
- DECL_ACCESSORS(inferred_name, String) |
- |
// The function's name if it is non-empty, otherwise the inferred name. |
String* DebugName(); |
@@ -7057,9 +7061,9 @@ class SharedFunctionInfo: public HeapObject { |
kInstanceClassNameOffset + kPointerSize; |
static const int kScriptOffset = kFunctionDataOffset + kPointerSize; |
static const int kDebugInfoOffset = kScriptOffset + kPointerSize; |
- static const int kInferredNameOffset = kDebugInfoOffset + kPointerSize; |
+ static const int kFunctionIdentifierOffset = kDebugInfoOffset + kPointerSize; |
static const int kFeedbackVectorOffset = |
- kInferredNameOffset + kPointerSize; |
+ kFunctionIdentifierOffset + kPointerSize; |
#if TRACE_MAPS |
static const int kUniqueIdOffset = kFeedbackVectorOffset + kPointerSize; |
static const int kLastPointerFieldOffset = kUniqueIdOffset; |