| OLD | NEW |
| 1 // Copyright 2015 the V8 project authors. All rights reserved. | 1 // Copyright 2015 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/assert-scope.h" | 10 #include "src/assert-scope.h" |
| (...skipping 6798 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 6809 // the function through program execution but through other means (e.g. heap | 6809 // the function through program execution but through other means (e.g. heap |
| 6810 // iteration by the debugger). | 6810 // iteration by the debugger). |
| 6811 DECL_BOOLEAN_ACCESSORS(allows_lazy_compilation_without_context) | 6811 DECL_BOOLEAN_ACCESSORS(allows_lazy_compilation_without_context) |
| 6812 | 6812 |
| 6813 // Indicates whether optimizations have been disabled for this | 6813 // Indicates whether optimizations have been disabled for this |
| 6814 // shared function info. If a function is repeatedly optimized or if | 6814 // shared function info. If a function is repeatedly optimized or if |
| 6815 // we cannot optimize the function we disable optimization to avoid | 6815 // we cannot optimize the function we disable optimization to avoid |
| 6816 // spending time attempting to optimize it again. | 6816 // spending time attempting to optimize it again. |
| 6817 DECL_BOOLEAN_ACCESSORS(optimization_disabled) | 6817 DECL_BOOLEAN_ACCESSORS(optimization_disabled) |
| 6818 | 6818 |
| 6819 DECL_BOOLEAN_ACCESSORS(within_module) |
| 6820 |
| 6819 // Indicates the language mode. | 6821 // Indicates the language mode. |
| 6820 inline LanguageMode language_mode(); | 6822 inline LanguageMode language_mode(); |
| 6821 inline void set_language_mode(LanguageMode language_mode); | 6823 inline void set_language_mode(LanguageMode language_mode); |
| 6822 | 6824 |
| 6823 // False if the function definitely does not allocate an arguments object. | 6825 // False if the function definitely does not allocate an arguments object. |
| 6824 DECL_BOOLEAN_ACCESSORS(uses_arguments) | 6826 DECL_BOOLEAN_ACCESSORS(uses_arguments) |
| 6825 | 6827 |
| 6826 // Indicates that this function uses a super property (or an eval that may | 6828 // Indicates that this function uses a super property (or an eval that may |
| 6827 // use a super property). | 6829 // use a super property). |
| 6828 // This is needed to set up the [[HomeObject]] on the function instance. | 6830 // This is needed to set up the [[HomeObject]] on the function instance. |
| (...skipping 334 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 7163 kIsDefaultConstructor, | 7165 kIsDefaultConstructor, |
| 7164 kIsSubclassConstructor, | 7166 kIsSubclassConstructor, |
| 7165 kIsBaseConstructor, | 7167 kIsBaseConstructor, |
| 7166 kIsGetterFunction, | 7168 kIsGetterFunction, |
| 7167 kIsSetterFunction, | 7169 kIsSetterFunction, |
| 7168 // byte 3 | 7170 // byte 3 |
| 7169 kIsAsyncFunction, | 7171 kIsAsyncFunction, |
| 7170 kDeserialized, | 7172 kDeserialized, |
| 7171 kIsDeclaration, | 7173 kIsDeclaration, |
| 7172 kCompilerHintsCount, // Pseudo entry | 7174 kCompilerHintsCount, // Pseudo entry |
| 7175 kWithinModule, |
| 7173 }; | 7176 }; |
| 7174 // Add hints for other modes when they're added. | 7177 // Add hints for other modes when they're added. |
| 7175 STATIC_ASSERT(LANGUAGE_END == 3); | 7178 STATIC_ASSERT(LANGUAGE_END == 3); |
| 7176 // kFunctionKind has to be byte-aligned | 7179 // kFunctionKind has to be byte-aligned |
| 7177 STATIC_ASSERT((kFunctionKind % kBitsPerByte) == 0); | 7180 STATIC_ASSERT((kFunctionKind % kBitsPerByte) == 0); |
| 7178 // Make sure that FunctionKind and byte 2 are in sync: | 7181 // Make sure that FunctionKind and byte 2 are in sync: |
| 7179 #define ASSERT_FUNCTION_KIND_ORDER(functionKind, compilerFunctionKind) \ | 7182 #define ASSERT_FUNCTION_KIND_ORDER(functionKind, compilerFunctionKind) \ |
| 7180 STATIC_ASSERT(FunctionKind::functionKind == \ | 7183 STATIC_ASSERT(FunctionKind::functionKind == \ |
| 7181 1 << (compilerFunctionKind - kFunctionKind)) | 7184 1 << (compilerFunctionKind - kFunctionKind)) |
| 7182 ASSERT_FUNCTION_KIND_ORDER(kArrowFunction, kIsArrow); | 7185 ASSERT_FUNCTION_KIND_ORDER(kArrowFunction, kIsArrow); |
| (...skipping 3568 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 10751 } | 10754 } |
| 10752 return value; | 10755 return value; |
| 10753 } | 10756 } |
| 10754 }; | 10757 }; |
| 10755 | 10758 |
| 10756 | 10759 |
| 10757 } // NOLINT, false-positive due to second-order macros. | 10760 } // NOLINT, false-positive due to second-order macros. |
| 10758 } // NOLINT, false-positive due to second-order macros. | 10761 } // NOLINT, false-positive due to second-order macros. |
| 10759 | 10762 |
| 10760 #endif // V8_OBJECTS_H_ | 10763 #endif // V8_OBJECTS_H_ |
| OLD | NEW |