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 |
6784 // Indicates that the function was created by the Function function. | 6787 // Indicates that the function was created by the Function function. |
6785 // Though it's anonymous, toString should treat it as if it had the name | 6788 // Though it's anonymous, toString should treat it as if it had the name |
6786 // "anonymous". We don't set the name itself so that the system does not | 6789 // "anonymous". We don't set the name itself so that the system does not |
6787 // see a binding for it. | 6790 // see a binding for it. |
6788 DECL_BOOLEAN_ACCESSORS(name_should_print_as_anonymous) | 6791 DECL_BOOLEAN_ACCESSORS(name_should_print_as_anonymous) |
6789 | 6792 |
6790 // Indicates whether the function is a bound function created using | 6793 // Indicates whether the function is a bound function created using |
6791 // the bind function. | 6794 // the bind function. |
6792 DECL_BOOLEAN_ACCESSORS(bound) | 6795 DECL_BOOLEAN_ACCESSORS(bound) |
6793 | 6796 |
(...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
6863 set_opt_count_and_bailout_reason( | 6866 set_opt_count_and_bailout_reason( |
6864 DisabledOptimizationReasonBits::update(opt_count_and_bailout_reason(), | 6867 DisabledOptimizationReasonBits::update(opt_count_and_bailout_reason(), |
6865 reason)); | 6868 reason)); |
6866 } | 6869 } |
6867 | 6870 |
6868 void set_dont_optimize_reason(BailoutReason reason) { | 6871 void set_dont_optimize_reason(BailoutReason reason) { |
6869 set_bailout_reason(reason); | 6872 set_bailout_reason(reason); |
6870 set_dont_optimize(reason != kNoReason); | 6873 set_dont_optimize(reason != kNoReason); |
6871 } | 6874 } |
6872 | 6875 |
| 6876 // Check whether or not this function is inlineable. |
| 6877 bool IsInlineable(); |
| 6878 |
6873 // Source size of this function. | 6879 // Source size of this function. |
6874 int SourceSize(); | 6880 int SourceSize(); |
6875 | 6881 |
6876 // Calculate the instance size. | 6882 // Calculate the instance size. |
6877 int CalculateInstanceSize(); | 6883 int CalculateInstanceSize(); |
6878 | 6884 |
6879 // Calculate the number of in-object properties. | 6885 // Calculate the number of in-object properties. |
6880 int CalculateInObjectProperties(); | 6886 int CalculateInObjectProperties(); |
6881 | 6887 |
6882 // Dispatched behavior. | 6888 // Dispatched behavior. |
(...skipping 130 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
7013 enum CompilerHints { | 7019 enum CompilerHints { |
7014 kAllowLazyCompilation, | 7020 kAllowLazyCompilation, |
7015 kAllowLazyCompilationWithoutContext, | 7021 kAllowLazyCompilationWithoutContext, |
7016 kLiveObjectsMayExist, | 7022 kLiveObjectsMayExist, |
7017 kOptimizationDisabled, | 7023 kOptimizationDisabled, |
7018 kStrictModeFunction, | 7024 kStrictModeFunction, |
7019 kExtendedModeFunction, | 7025 kExtendedModeFunction, |
7020 kUsesArguments, | 7026 kUsesArguments, |
7021 kHasDuplicateParameters, | 7027 kHasDuplicateParameters, |
7022 kNative, | 7028 kNative, |
| 7029 kInlineBuiltin, |
7023 kBoundFunction, | 7030 kBoundFunction, |
7024 kIsAnonymous, | 7031 kIsAnonymous, |
7025 kNameShouldPrintAsAnonymous, | 7032 kNameShouldPrintAsAnonymous, |
7026 kIsFunction, | 7033 kIsFunction, |
7027 kDontOptimize, | 7034 kDontOptimize, |
7028 kDontInline, | 7035 kDontInline, |
7029 kDontCache, | 7036 kDontCache, |
7030 kDontFlush, | 7037 kDontFlush, |
7031 kIsGenerator, | 7038 kIsGenerator, |
7032 kCompilerHintsCount // Pseudo entry | 7039 kCompilerHintsCount // Pseudo entry |
(...skipping 206 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
7239 ClearExceptionFlag flag); | 7246 ClearExceptionFlag flag); |
7240 | 7247 |
7241 // Tells whether or not the function is already marked for lazy | 7248 // Tells whether or not the function is already marked for lazy |
7242 // recompilation. | 7249 // recompilation. |
7243 inline bool IsMarkedForLazyRecompilation(); | 7250 inline bool IsMarkedForLazyRecompilation(); |
7244 inline bool IsMarkedForConcurrentRecompilation(); | 7251 inline bool IsMarkedForConcurrentRecompilation(); |
7245 | 7252 |
7246 // Tells whether or not the function is on the concurrent recompilation queue. | 7253 // Tells whether or not the function is on the concurrent recompilation queue. |
7247 inline bool IsInRecompileQueue(); | 7254 inline bool IsInRecompileQueue(); |
7248 | 7255 |
7249 // Check whether or not this function is inlineable. | |
7250 bool IsInlineable(); | |
7251 | |
7252 // [literals_or_bindings]: Fixed array holding either | 7256 // [literals_or_bindings]: Fixed array holding either |
7253 // the materialized literals or the bindings of a bound function. | 7257 // the materialized literals or the bindings of a bound function. |
7254 // | 7258 // |
7255 // If the function contains object, regexp or array literals, the | 7259 // If the function contains object, regexp or array literals, the |
7256 // literals array prefix contains the object, regexp, and array | 7260 // literals array prefix contains the object, regexp, and array |
7257 // function to be used when creating these literals. This is | 7261 // function to be used when creating these literals. This is |
7258 // necessary so that we do not dynamically lookup the object, regexp | 7262 // necessary so that we do not dynamically lookup the object, regexp |
7259 // or array functions. Performing a dynamic lookup, we might end up | 7263 // or array functions. Performing a dynamic lookup, we might end up |
7260 // using the functions from a new context that we should not have | 7264 // using the functions from a new context that we should not have |
7261 // access to. | 7265 // access to. |
(...skipping 3214 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
10476 } else { | 10480 } else { |
10477 value &= ~(1 << bit_position); | 10481 value &= ~(1 << bit_position); |
10478 } | 10482 } |
10479 return value; | 10483 return value; |
10480 } | 10484 } |
10481 }; | 10485 }; |
10482 | 10486 |
10483 } } // namespace v8::internal | 10487 } } // namespace v8::internal |
10484 | 10488 |
10485 #endif // V8_OBJECTS_H_ | 10489 #endif // V8_OBJECTS_H_ |
OLD | NEW |