OLD | NEW |
1 // Copyright 2012 the V8 project authors. All rights reserved. | 1 // Copyright 2012 the V8 project authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #ifndef V8_OBJECTS_H_ | 5 #ifndef V8_OBJECTS_H_ |
6 #define V8_OBJECTS_H_ | 6 #define V8_OBJECTS_H_ |
7 | 7 |
8 #include <iosfwd> | 8 #include <iosfwd> |
9 | 9 |
10 #include "src/allocation.h" | 10 #include "src/allocation.h" |
(...skipping 6650 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
6661 inline void set_num_literals(int value); | 6661 inline void set_num_literals(int value); |
6662 | 6662 |
6663 // [start_position_and_type]: Field used to store both the source code | 6663 // [start_position_and_type]: Field used to store both the source code |
6664 // position, whether or not the function is a function expression, | 6664 // position, whether or not the function is a function expression, |
6665 // and whether or not the function is a toplevel function. The two | 6665 // and whether or not the function is a toplevel function. The two |
6666 // least significants bit indicates whether the function is an | 6666 // least significants bit indicates whether the function is an |
6667 // expression and the rest contains the source code position. | 6667 // expression and the rest contains the source code position. |
6668 inline int start_position_and_type() const; | 6668 inline int start_position_and_type() const; |
6669 inline void set_start_position_and_type(int value); | 6669 inline void set_start_position_and_type(int value); |
6670 | 6670 |
| 6671 // The function is subject to debugging if a debug info is attached. |
| 6672 inline bool HasDebugInfo(); |
| 6673 inline DebugInfo* GetDebugInfo(); |
| 6674 |
| 6675 // A function has debug code if the compiled code has debug break slots. |
| 6676 inline bool HasDebugCode(); |
| 6677 |
6671 // [debug info]: Debug information. | 6678 // [debug info]: Debug information. |
6672 DECL_ACCESSORS(debug_info, Object) | 6679 DECL_ACCESSORS(debug_info, Object) |
6673 | 6680 |
6674 // [inferred name]: Name inferred from variable or property | 6681 // [inferred name]: Name inferred from variable or property |
6675 // assignment of this function. Used to facilitate debugging and | 6682 // assignment of this function. Used to facilitate debugging and |
6676 // profiling of JavaScript code written in OO style, where almost | 6683 // profiling of JavaScript code written in OO style, where almost |
6677 // all functions are anonymous but are assigned to object | 6684 // all functions are anonymous but are assigned to object |
6678 // properties. | 6685 // properties. |
6679 DECL_ACCESSORS(inferred_name, String) | 6686 DECL_ACCESSORS(inferred_name, String) |
6680 | 6687 |
(...skipping 565 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
7246 // [[Call]] and [[Construct]] description in ECMA-262, section | 7253 // [[Call]] and [[Construct]] description in ECMA-262, section |
7247 // 8.6.2, page 27. | 7254 // 8.6.2, page 27. |
7248 inline Code* code(); | 7255 inline Code* code(); |
7249 inline void set_code(Code* code); | 7256 inline void set_code(Code* code); |
7250 inline void set_code_no_write_barrier(Code* code); | 7257 inline void set_code_no_write_barrier(Code* code); |
7251 inline void ReplaceCode(Code* code); | 7258 inline void ReplaceCode(Code* code); |
7252 | 7259 |
7253 // Tells whether this function is builtin. | 7260 // Tells whether this function is builtin. |
7254 inline bool IsBuiltin(); | 7261 inline bool IsBuiltin(); |
7255 | 7262 |
| 7263 // Tells whether this function inlines the given shared function info. |
| 7264 bool Inlines(SharedFunctionInfo* candidate); |
| 7265 |
7256 // Tells whether this function should be subject to debugging. | 7266 // Tells whether this function should be subject to debugging. |
7257 inline bool IsSubjectToDebugging(); | 7267 inline bool IsSubjectToDebugging(); |
7258 | 7268 |
7259 // Tells whether or not the function needs arguments adaption. | 7269 // Tells whether or not the function needs arguments adaption. |
7260 inline bool NeedsArgumentsAdaption(); | 7270 inline bool NeedsArgumentsAdaption(); |
7261 | 7271 |
7262 // Tells whether or not this function has been optimized. | 7272 // Tells whether or not this function has been optimized. |
7263 inline bool IsOptimized(); | 7273 inline bool IsOptimized(); |
7264 | 7274 |
7265 // Mark this function for lazy recompilation. The function will be | 7275 // Mark this function for lazy recompilation. The function will be |
(...skipping 3519 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
10785 } else { | 10795 } else { |
10786 value &= ~(1 << bit_position); | 10796 value &= ~(1 << bit_position); |
10787 } | 10797 } |
10788 return value; | 10798 return value; |
10789 } | 10799 } |
10790 }; | 10800 }; |
10791 | 10801 |
10792 } } // namespace v8::internal | 10802 } } // namespace v8::internal |
10793 | 10803 |
10794 #endif // V8_OBJECTS_H_ | 10804 #endif // V8_OBJECTS_H_ |
OLD | NEW |