OLD | NEW |
1 // Copyright 2012 the V8 project authors. All rights reserved. | 1 // Copyright 2012 the V8 project authors. All rights reserved. |
2 // Redistribution and use in source and binary forms, with or without | 2 // Redistribution and use in source and binary forms, with or without |
3 // modification, are permitted provided that the following conditions are | 3 // modification, are permitted provided that the following conditions are |
4 // met: | 4 // met: |
5 // | 5 // |
6 // * Redistributions of source code must retain the above copyright | 6 // * Redistributions of source code must retain the above copyright |
7 // notice, this list of conditions and the following disclaimer. | 7 // notice, this list of conditions and the following disclaimer. |
8 // * Redistributions in binary form must reproduce the above | 8 // * Redistributions in binary form must reproduce the above |
9 // copyright notice, this list of conditions and the following | 9 // copyright notice, this list of conditions and the following |
10 // disclaimer in the documentation and/or other materials provided | 10 // disclaimer in the documentation and/or other materials provided |
(...skipping 6763 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
6774 | 6774 |
6775 // True if the function has any duplicated parameter names. | 6775 // True if the function has any duplicated parameter names. |
6776 DECL_BOOLEAN_ACCESSORS(has_duplicate_parameters) | 6776 DECL_BOOLEAN_ACCESSORS(has_duplicate_parameters) |
6777 | 6777 |
6778 // Indicates whether the function is a native function. | 6778 // Indicates whether the function is a native function. |
6779 // These needs special treatment in .call and .apply since | 6779 // These needs special treatment in .call and .apply since |
6780 // null passed as the receiver should not be translated to the | 6780 // null passed as the receiver should not be translated to the |
6781 // global object. | 6781 // global object. |
6782 DECL_BOOLEAN_ACCESSORS(native) | 6782 DECL_BOOLEAN_ACCESSORS(native) |
6783 | 6783 |
6784 // Indicate that this builtin needs to be inlined in crankshaft. | |
6785 DECL_BOOLEAN_ACCESSORS(inline_builtin) | |
6786 | |
6787 // Indicates that the function was created by the Function function. | 6784 // Indicates that the function was created by the Function function. |
6788 // Though it's anonymous, toString should treat it as if it had the name | 6785 // Though it's anonymous, toString should treat it as if it had the name |
6789 // "anonymous". We don't set the name itself so that the system does not | 6786 // "anonymous". We don't set the name itself so that the system does not |
6790 // see a binding for it. | 6787 // see a binding for it. |
6791 DECL_BOOLEAN_ACCESSORS(name_should_print_as_anonymous) | 6788 DECL_BOOLEAN_ACCESSORS(name_should_print_as_anonymous) |
6792 | 6789 |
6793 // Indicates whether the function is a bound function created using | 6790 // Indicates whether the function is a bound function created using |
6794 // the bind function. | 6791 // the bind function. |
6795 DECL_BOOLEAN_ACCESSORS(bound) | 6792 DECL_BOOLEAN_ACCESSORS(bound) |
6796 | 6793 |
(...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
6866 set_opt_count_and_bailout_reason( | 6863 set_opt_count_and_bailout_reason( |
6867 DisabledOptimizationReasonBits::update(opt_count_and_bailout_reason(), | 6864 DisabledOptimizationReasonBits::update(opt_count_and_bailout_reason(), |
6868 reason)); | 6865 reason)); |
6869 } | 6866 } |
6870 | 6867 |
6871 void set_dont_optimize_reason(BailoutReason reason) { | 6868 void set_dont_optimize_reason(BailoutReason reason) { |
6872 set_bailout_reason(reason); | 6869 set_bailout_reason(reason); |
6873 set_dont_optimize(reason != kNoReason); | 6870 set_dont_optimize(reason != kNoReason); |
6874 } | 6871 } |
6875 | 6872 |
6876 // Check whether or not this function is inlineable. | |
6877 bool IsInlineable(); | |
6878 | |
6879 // Source size of this function. | 6873 // Source size of this function. |
6880 int SourceSize(); | 6874 int SourceSize(); |
6881 | 6875 |
6882 // Calculate the instance size. | 6876 // Calculate the instance size. |
6883 int CalculateInstanceSize(); | 6877 int CalculateInstanceSize(); |
6884 | 6878 |
6885 // Calculate the number of in-object properties. | 6879 // Calculate the number of in-object properties. |
6886 int CalculateInObjectProperties(); | 6880 int CalculateInObjectProperties(); |
6887 | 6881 |
6888 // Dispatched behavior. | 6882 // Dispatched behavior. |
(...skipping 130 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
7019 enum CompilerHints { | 7013 enum CompilerHints { |
7020 kAllowLazyCompilation, | 7014 kAllowLazyCompilation, |
7021 kAllowLazyCompilationWithoutContext, | 7015 kAllowLazyCompilationWithoutContext, |
7022 kLiveObjectsMayExist, | 7016 kLiveObjectsMayExist, |
7023 kOptimizationDisabled, | 7017 kOptimizationDisabled, |
7024 kStrictModeFunction, | 7018 kStrictModeFunction, |
7025 kExtendedModeFunction, | 7019 kExtendedModeFunction, |
7026 kUsesArguments, | 7020 kUsesArguments, |
7027 kHasDuplicateParameters, | 7021 kHasDuplicateParameters, |
7028 kNative, | 7022 kNative, |
7029 kInlineBuiltin, | |
7030 kBoundFunction, | 7023 kBoundFunction, |
7031 kIsAnonymous, | 7024 kIsAnonymous, |
7032 kNameShouldPrintAsAnonymous, | 7025 kNameShouldPrintAsAnonymous, |
7033 kIsFunction, | 7026 kIsFunction, |
7034 kDontOptimize, | 7027 kDontOptimize, |
7035 kDontInline, | 7028 kDontInline, |
7036 kDontCache, | 7029 kDontCache, |
7037 kDontFlush, | 7030 kDontFlush, |
7038 kIsGenerator, | 7031 kIsGenerator, |
7039 kCompilerHintsCount // Pseudo entry | 7032 kCompilerHintsCount // Pseudo entry |
(...skipping 206 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
7246 ClearExceptionFlag flag); | 7239 ClearExceptionFlag flag); |
7247 | 7240 |
7248 // Tells whether or not the function is already marked for lazy | 7241 // Tells whether or not the function is already marked for lazy |
7249 // recompilation. | 7242 // recompilation. |
7250 inline bool IsMarkedForLazyRecompilation(); | 7243 inline bool IsMarkedForLazyRecompilation(); |
7251 inline bool IsMarkedForConcurrentRecompilation(); | 7244 inline bool IsMarkedForConcurrentRecompilation(); |
7252 | 7245 |
7253 // Tells whether or not the function is on the concurrent recompilation queue. | 7246 // Tells whether or not the function is on the concurrent recompilation queue. |
7254 inline bool IsInRecompileQueue(); | 7247 inline bool IsInRecompileQueue(); |
7255 | 7248 |
| 7249 // Check whether or not this function is inlineable. |
| 7250 bool IsInlineable(); |
| 7251 |
7256 // [literals_or_bindings]: Fixed array holding either | 7252 // [literals_or_bindings]: Fixed array holding either |
7257 // the materialized literals or the bindings of a bound function. | 7253 // the materialized literals or the bindings of a bound function. |
7258 // | 7254 // |
7259 // If the function contains object, regexp or array literals, the | 7255 // If the function contains object, regexp or array literals, the |
7260 // literals array prefix contains the object, regexp, and array | 7256 // literals array prefix contains the object, regexp, and array |
7261 // function to be used when creating these literals. This is | 7257 // function to be used when creating these literals. This is |
7262 // necessary so that we do not dynamically lookup the object, regexp | 7258 // necessary so that we do not dynamically lookup the object, regexp |
7263 // or array functions. Performing a dynamic lookup, we might end up | 7259 // or array functions. Performing a dynamic lookup, we might end up |
7264 // using the functions from a new context that we should not have | 7260 // using the functions from a new context that we should not have |
7265 // access to. | 7261 // access to. |
(...skipping 3215 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
10481 } else { | 10477 } else { |
10482 value &= ~(1 << bit_position); | 10478 value &= ~(1 << bit_position); |
10483 } | 10479 } |
10484 return value; | 10480 return value; |
10485 } | 10481 } |
10486 }; | 10482 }; |
10487 | 10483 |
10488 } } // namespace v8::internal | 10484 } } // namespace v8::internal |
10489 | 10485 |
10490 #endif // V8_OBJECTS_H_ | 10486 #endif // V8_OBJECTS_H_ |
OLD | NEW |