| 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 6806 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 6817 // spending time attempting to optimize it again. | 6817 // spending time attempting to optimize it again. |
| 6818 DECL_BOOLEAN_ACCESSORS(optimization_disabled) | 6818 DECL_BOOLEAN_ACCESSORS(optimization_disabled) |
| 6819 | 6819 |
| 6820 // Indicates the language mode. | 6820 // Indicates the language mode. |
| 6821 inline StrictMode strict_mode(); | 6821 inline StrictMode strict_mode(); |
| 6822 inline void set_strict_mode(StrictMode strict_mode); | 6822 inline void set_strict_mode(StrictMode strict_mode); |
| 6823 | 6823 |
| 6824 // False if the function definitely does not allocate an arguments object. | 6824 // False if the function definitely does not allocate an arguments object. |
| 6825 DECL_BOOLEAN_ACCESSORS(uses_arguments) | 6825 DECL_BOOLEAN_ACCESSORS(uses_arguments) |
| 6826 | 6826 |
| 6827 // Indicates that this function uses super. This is needed to set up the |
| 6828 // [[HomeObject]] on the function instance. |
| 6829 DECL_BOOLEAN_ACCESSORS(uses_super) |
| 6830 |
| 6827 // True if the function has any duplicated parameter names. | 6831 // True if the function has any duplicated parameter names. |
| 6828 DECL_BOOLEAN_ACCESSORS(has_duplicate_parameters) | 6832 DECL_BOOLEAN_ACCESSORS(has_duplicate_parameters) |
| 6829 | 6833 |
| 6830 // Indicates whether the function is a native function. | 6834 // Indicates whether the function is a native function. |
| 6831 // These needs special treatment in .call and .apply since | 6835 // These needs special treatment in .call and .apply since |
| 6832 // null passed as the receiver should not be translated to the | 6836 // null passed as the receiver should not be translated to the |
| 6833 // global object. | 6837 // global object. |
| 6834 DECL_BOOLEAN_ACCESSORS(native) | 6838 DECL_BOOLEAN_ACCESSORS(native) |
| 6835 | 6839 |
| 6836 // Indicate that this builtin needs to be inlined in crankshaft. | 6840 // Indicate that this builtin needs to be inlined in crankshaft. |
| (...skipping 27 matching lines...) Expand all Loading... |
| 6864 | 6868 |
| 6865 // Indicates that this function is an arrow function. | 6869 // Indicates that this function is an arrow function. |
| 6866 DECL_BOOLEAN_ACCESSORS(is_arrow) | 6870 DECL_BOOLEAN_ACCESSORS(is_arrow) |
| 6867 | 6871 |
| 6868 // Indicates that this function is a concise method. | 6872 // Indicates that this function is a concise method. |
| 6869 DECL_BOOLEAN_ACCESSORS(is_concise_method) | 6873 DECL_BOOLEAN_ACCESSORS(is_concise_method) |
| 6870 | 6874 |
| 6871 // Indicates that this function is a default constructor. | 6875 // Indicates that this function is a default constructor. |
| 6872 DECL_BOOLEAN_ACCESSORS(is_default_constructor) | 6876 DECL_BOOLEAN_ACCESSORS(is_default_constructor) |
| 6873 | 6877 |
| 6874 // Indicates that this function is a default constructor that needs to call | |
| 6875 // super. | |
| 6876 DECL_BOOLEAN_ACCESSORS(is_default_constructor_call_super) | |
| 6877 | |
| 6878 // Indicates that this function is an asm function. | 6878 // Indicates that this function is an asm function. |
| 6879 DECL_BOOLEAN_ACCESSORS(asm_function) | 6879 DECL_BOOLEAN_ACCESSORS(asm_function) |
| 6880 | 6880 |
| 6881 // Indicates that the the shared function info is deserialized from cache. | 6881 // Indicates that the the shared function info is deserialized from cache. |
| 6882 DECL_BOOLEAN_ACCESSORS(deserialized) | 6882 DECL_BOOLEAN_ACCESSORS(deserialized) |
| 6883 | 6883 |
| 6884 inline FunctionKind kind(); | 6884 inline FunctionKind kind(); |
| 6885 inline void set_kind(FunctionKind kind); | 6885 inline void set_kind(FunctionKind kind); |
| 6886 | 6886 |
| 6887 // Indicates whether or not the code in the shared function support | 6887 // Indicates whether or not the code in the shared function support |
| (...skipping 210 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 7098 static const int kStartPositionShift = 2; | 7098 static const int kStartPositionShift = 2; |
| 7099 static const int kStartPositionMask = ~((1 << kStartPositionShift) - 1); | 7099 static const int kStartPositionMask = ~((1 << kStartPositionShift) - 1); |
| 7100 | 7100 |
| 7101 // Bit positions in compiler_hints. | 7101 // Bit positions in compiler_hints. |
| 7102 enum CompilerHints { | 7102 enum CompilerHints { |
| 7103 kAllowLazyCompilation, | 7103 kAllowLazyCompilation, |
| 7104 kAllowLazyCompilationWithoutContext, | 7104 kAllowLazyCompilationWithoutContext, |
| 7105 kOptimizationDisabled, | 7105 kOptimizationDisabled, |
| 7106 kStrictModeFunction, | 7106 kStrictModeFunction, |
| 7107 kUsesArguments, | 7107 kUsesArguments, |
| 7108 kUsesSuper, |
| 7108 kHasDuplicateParameters, | 7109 kHasDuplicateParameters, |
| 7109 kNative, | 7110 kNative, |
| 7110 kInlineBuiltin, | 7111 kInlineBuiltin, |
| 7111 kBoundFunction, | 7112 kBoundFunction, |
| 7112 kIsAnonymous, | 7113 kIsAnonymous, |
| 7113 kNameShouldPrintAsAnonymous, | 7114 kNameShouldPrintAsAnonymous, |
| 7114 kIsFunction, | 7115 kIsFunction, |
| 7115 kDontCache, | 7116 kDontCache, |
| 7116 kDontFlush, | 7117 kDontFlush, |
| 7117 kIsArrow, | 7118 kIsArrow, |
| 7118 kIsGenerator, | 7119 kIsGenerator, |
| 7119 kIsConciseMethod, | 7120 kIsConciseMethod, |
| 7120 kIsDefaultConstructor, | 7121 kIsDefaultConstructor, |
| 7121 kIsDefaultConstructorCallSuper, | |
| 7122 kIsAsmFunction, | 7122 kIsAsmFunction, |
| 7123 kDeserialized, | 7123 kDeserialized, |
| 7124 kCompilerHintsCount // Pseudo entry | 7124 kCompilerHintsCount // Pseudo entry |
| 7125 }; | 7125 }; |
| 7126 | 7126 |
| 7127 class FunctionKindBits : public BitField<FunctionKind, kIsArrow, 5> {}; | 7127 class FunctionKindBits : public BitField<FunctionKind, kIsArrow, 4> {}; |
| 7128 | 7128 |
| 7129 class DeoptCountBits : public BitField<int, 0, 4> {}; | 7129 class DeoptCountBits : public BitField<int, 0, 4> {}; |
| 7130 class OptReenableTriesBits : public BitField<int, 4, 18> {}; | 7130 class OptReenableTriesBits : public BitField<int, 4, 18> {}; |
| 7131 class ICAgeBits : public BitField<int, 22, 8> {}; | 7131 class ICAgeBits : public BitField<int, 22, 8> {}; |
| 7132 | 7132 |
| 7133 class OptCountBits : public BitField<int, 0, 22> {}; | 7133 class OptCountBits : public BitField<int, 0, 22> {}; |
| 7134 class DisabledOptimizationReasonBits : public BitField<int, 22, 8> {}; | 7134 class DisabledOptimizationReasonBits : public BitField<int, 22, 8> {}; |
| 7135 | 7135 |
| 7136 private: | 7136 private: |
| 7137 #if V8_HOST_ARCH_32_BIT | 7137 #if V8_HOST_ARCH_32_BIT |
| (...skipping 3833 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 10971 } else { | 10971 } else { |
| 10972 value &= ~(1 << bit_position); | 10972 value &= ~(1 << bit_position); |
| 10973 } | 10973 } |
| 10974 return value; | 10974 return value; |
| 10975 } | 10975 } |
| 10976 }; | 10976 }; |
| 10977 | 10977 |
| 10978 } } // namespace v8::internal | 10978 } } // namespace v8::internal |
| 10979 | 10979 |
| 10980 #endif // V8_OBJECTS_H_ | 10980 #endif // V8_OBJECTS_H_ |
| OLD | NEW |