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 6727 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
6738 | 6738 |
6739 // True if the function has any duplicated parameter names. | 6739 // True if the function has any duplicated parameter names. |
6740 DECL_BOOLEAN_ACCESSORS(has_duplicate_parameters) | 6740 DECL_BOOLEAN_ACCESSORS(has_duplicate_parameters) |
6741 | 6741 |
6742 // Indicates whether the function is a native function. | 6742 // Indicates whether the function is a native function. |
6743 // These needs special treatment in .call and .apply since | 6743 // These needs special treatment in .call and .apply since |
6744 // null passed as the receiver should not be translated to the | 6744 // null passed as the receiver should not be translated to the |
6745 // global object. | 6745 // global object. |
6746 DECL_BOOLEAN_ACCESSORS(native) | 6746 DECL_BOOLEAN_ACCESSORS(native) |
6747 | 6747 |
| 6748 // Indicate that this builtin needs to be inlined in crankshaft. |
| 6749 DECL_BOOLEAN_ACCESSORS(inline_builtin) |
| 6750 |
6748 // Indicates that the function was created by the Function function. | 6751 // Indicates that the function was created by the Function function. |
6749 // Though it's anonymous, toString should treat it as if it had the name | 6752 // Though it's anonymous, toString should treat it as if it had the name |
6750 // "anonymous". We don't set the name itself so that the system does not | 6753 // "anonymous". We don't set the name itself so that the system does not |
6751 // see a binding for it. | 6754 // see a binding for it. |
6752 DECL_BOOLEAN_ACCESSORS(name_should_print_as_anonymous) | 6755 DECL_BOOLEAN_ACCESSORS(name_should_print_as_anonymous) |
6753 | 6756 |
6754 // Indicates whether the function is a bound function created using | 6757 // Indicates whether the function is a bound function created using |
6755 // the bind function. | 6758 // the bind function. |
6756 DECL_BOOLEAN_ACCESSORS(bound) | 6759 DECL_BOOLEAN_ACCESSORS(bound) |
6757 | 6760 |
(...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
6827 set_opt_count_and_bailout_reason( | 6830 set_opt_count_and_bailout_reason( |
6828 DisabledOptimizationReasonBits::update(opt_count_and_bailout_reason(), | 6831 DisabledOptimizationReasonBits::update(opt_count_and_bailout_reason(), |
6829 reason)); | 6832 reason)); |
6830 } | 6833 } |
6831 | 6834 |
6832 void set_dont_optimize_reason(BailoutReason reason) { | 6835 void set_dont_optimize_reason(BailoutReason reason) { |
6833 set_bailout_reason(reason); | 6836 set_bailout_reason(reason); |
6834 set_dont_optimize(reason != kNoReason); | 6837 set_dont_optimize(reason != kNoReason); |
6835 } | 6838 } |
6836 | 6839 |
| 6840 // Check whether or not this function is inlineable. |
| 6841 bool IsInlineable(); |
| 6842 |
6837 // Source size of this function. | 6843 // Source size of this function. |
6838 int SourceSize(); | 6844 int SourceSize(); |
6839 | 6845 |
6840 // Calculate the instance size. | 6846 // Calculate the instance size. |
6841 int CalculateInstanceSize(); | 6847 int CalculateInstanceSize(); |
6842 | 6848 |
6843 // Calculate the number of in-object properties. | 6849 // Calculate the number of in-object properties. |
6844 int CalculateInObjectProperties(); | 6850 int CalculateInObjectProperties(); |
6845 | 6851 |
6846 // Dispatched behavior. | 6852 // Dispatched behavior. |
(...skipping 130 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
6977 enum CompilerHints { | 6983 enum CompilerHints { |
6978 kAllowLazyCompilation, | 6984 kAllowLazyCompilation, |
6979 kAllowLazyCompilationWithoutContext, | 6985 kAllowLazyCompilationWithoutContext, |
6980 kLiveObjectsMayExist, | 6986 kLiveObjectsMayExist, |
6981 kOptimizationDisabled, | 6987 kOptimizationDisabled, |
6982 kStrictModeFunction, | 6988 kStrictModeFunction, |
6983 kExtendedModeFunction, | 6989 kExtendedModeFunction, |
6984 kUsesArguments, | 6990 kUsesArguments, |
6985 kHasDuplicateParameters, | 6991 kHasDuplicateParameters, |
6986 kNative, | 6992 kNative, |
| 6993 kInlineBuiltin, |
6987 kBoundFunction, | 6994 kBoundFunction, |
6988 kIsAnonymous, | 6995 kIsAnonymous, |
6989 kNameShouldPrintAsAnonymous, | 6996 kNameShouldPrintAsAnonymous, |
6990 kIsFunction, | 6997 kIsFunction, |
6991 kDontOptimize, | 6998 kDontOptimize, |
6992 kDontInline, | 6999 kDontInline, |
6993 kDontCache, | 7000 kDontCache, |
6994 kDontFlush, | 7001 kDontFlush, |
6995 kIsGenerator, | 7002 kIsGenerator, |
6996 kCompilerHintsCount // Pseudo entry | 7003 kCompilerHintsCount // Pseudo entry |
(...skipping 206 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
7203 ClearExceptionFlag flag); | 7210 ClearExceptionFlag flag); |
7204 | 7211 |
7205 // Tells whether or not the function is already marked for lazy | 7212 // Tells whether or not the function is already marked for lazy |
7206 // recompilation. | 7213 // recompilation. |
7207 inline bool IsMarkedForLazyRecompilation(); | 7214 inline bool IsMarkedForLazyRecompilation(); |
7208 inline bool IsMarkedForConcurrentRecompilation(); | 7215 inline bool IsMarkedForConcurrentRecompilation(); |
7209 | 7216 |
7210 // Tells whether or not the function is on the concurrent recompilation queue. | 7217 // Tells whether or not the function is on the concurrent recompilation queue. |
7211 inline bool IsInRecompileQueue(); | 7218 inline bool IsInRecompileQueue(); |
7212 | 7219 |
7213 // Check whether or not this function is inlineable. | |
7214 bool IsInlineable(); | |
7215 | |
7216 // [literals_or_bindings]: Fixed array holding either | 7220 // [literals_or_bindings]: Fixed array holding either |
7217 // the materialized literals or the bindings of a bound function. | 7221 // the materialized literals or the bindings of a bound function. |
7218 // | 7222 // |
7219 // If the function contains object, regexp or array literals, the | 7223 // If the function contains object, regexp or array literals, the |
7220 // literals array prefix contains the object, regexp, and array | 7224 // literals array prefix contains the object, regexp, and array |
7221 // function to be used when creating these literals. This is | 7225 // function to be used when creating these literals. This is |
7222 // necessary so that we do not dynamically lookup the object, regexp | 7226 // necessary so that we do not dynamically lookup the object, regexp |
7223 // or array functions. Performing a dynamic lookup, we might end up | 7227 // or array functions. Performing a dynamic lookup, we might end up |
7224 // using the functions from a new context that we should not have | 7228 // using the functions from a new context that we should not have |
7225 // access to. | 7229 // access to. |
(...skipping 3214 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
10440 } else { | 10444 } else { |
10441 value &= ~(1 << bit_position); | 10445 value &= ~(1 << bit_position); |
10442 } | 10446 } |
10443 return value; | 10447 return value; |
10444 } | 10448 } |
10445 }; | 10449 }; |
10446 | 10450 |
10447 } } // namespace v8::internal | 10451 } } // namespace v8::internal |
10448 | 10452 |
10449 #endif // V8_OBJECTS_H_ | 10453 #endif // V8_OBJECTS_H_ |
OLD | NEW |