| 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 "src/allocation.h" | 8 #include "src/allocation.h" |
| 9 #include "src/assert-scope.h" | 9 #include "src/assert-scope.h" |
| 10 #include "src/builtins.h" | 10 #include "src/builtins.h" |
| (...skipping 7205 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 7216 // the bind function. | 7216 // the bind function. |
| 7217 DECL_BOOLEAN_ACCESSORS(bound) | 7217 DECL_BOOLEAN_ACCESSORS(bound) |
| 7218 | 7218 |
| 7219 // Indicates that the function is anonymous (the name field can be set | 7219 // Indicates that the function is anonymous (the name field can be set |
| 7220 // through the API, which does not change this flag). | 7220 // through the API, which does not change this flag). |
| 7221 DECL_BOOLEAN_ACCESSORS(is_anonymous) | 7221 DECL_BOOLEAN_ACCESSORS(is_anonymous) |
| 7222 | 7222 |
| 7223 // Is this a function or top-level/eval code. | 7223 // Is this a function or top-level/eval code. |
| 7224 DECL_BOOLEAN_ACCESSORS(is_function) | 7224 DECL_BOOLEAN_ACCESSORS(is_function) |
| 7225 | 7225 |
| 7226 // Indicates that the function cannot be inlined. | |
| 7227 DECL_BOOLEAN_ACCESSORS(dont_inline) | |
| 7228 | |
| 7229 // Indicates that code for this function cannot be cached. | 7226 // Indicates that code for this function cannot be cached. |
| 7230 DECL_BOOLEAN_ACCESSORS(dont_cache) | 7227 DECL_BOOLEAN_ACCESSORS(dont_cache) |
| 7231 | 7228 |
| 7232 // Indicates that code for this function cannot be flushed. | 7229 // Indicates that code for this function cannot be flushed. |
| 7233 DECL_BOOLEAN_ACCESSORS(dont_flush) | 7230 DECL_BOOLEAN_ACCESSORS(dont_flush) |
| 7234 | 7231 |
| 7235 // Indicates that this function is a generator. | 7232 // Indicates that this function is a generator. |
| 7236 DECL_BOOLEAN_ACCESSORS(is_generator) | 7233 DECL_BOOLEAN_ACCESSORS(is_generator) |
| 7237 | 7234 |
| 7238 // Indicates whether or not the code in the shared function support | 7235 // Indicates whether or not the code in the shared function support |
| (...skipping 41 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 7280 // Stores opt_count and bailout_reason as bit-fields. | 7277 // Stores opt_count and bailout_reason as bit-fields. |
| 7281 inline void set_opt_count_and_bailout_reason(int value); | 7278 inline void set_opt_count_and_bailout_reason(int value); |
| 7282 inline int opt_count_and_bailout_reason() const; | 7279 inline int opt_count_and_bailout_reason() const; |
| 7283 | 7280 |
| 7284 void set_bailout_reason(BailoutReason reason) { | 7281 void set_bailout_reason(BailoutReason reason) { |
| 7285 set_opt_count_and_bailout_reason( | 7282 set_opt_count_and_bailout_reason( |
| 7286 DisabledOptimizationReasonBits::update(opt_count_and_bailout_reason(), | 7283 DisabledOptimizationReasonBits::update(opt_count_and_bailout_reason(), |
| 7287 reason)); | 7284 reason)); |
| 7288 } | 7285 } |
| 7289 | 7286 |
| 7290 void set_dont_optimize_reason(BailoutReason reason) { | |
| 7291 set_bailout_reason(reason); | |
| 7292 set_dont_inline(reason != kNoReason); | |
| 7293 } | |
| 7294 | |
| 7295 // Check whether or not this function is inlineable. | 7287 // Check whether or not this function is inlineable. |
| 7296 bool IsInlineable(); | 7288 bool IsInlineable(); |
| 7297 | 7289 |
| 7298 // Source size of this function. | 7290 // Source size of this function. |
| 7299 int SourceSize(); | 7291 int SourceSize(); |
| 7300 | 7292 |
| 7301 // Calculate the instance size. | 7293 // Calculate the instance size. |
| 7302 int CalculateInstanceSize(); | 7294 int CalculateInstanceSize(); |
| 7303 | 7295 |
| 7304 // Calculate the number of in-object properties. | 7296 // Calculate the number of in-object properties. |
| (...skipping 122 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 7427 kOptimizationDisabled, | 7419 kOptimizationDisabled, |
| 7428 kStrictModeFunction, | 7420 kStrictModeFunction, |
| 7429 kUsesArguments, | 7421 kUsesArguments, |
| 7430 kHasDuplicateParameters, | 7422 kHasDuplicateParameters, |
| 7431 kNative, | 7423 kNative, |
| 7432 kInlineBuiltin, | 7424 kInlineBuiltin, |
| 7433 kBoundFunction, | 7425 kBoundFunction, |
| 7434 kIsAnonymous, | 7426 kIsAnonymous, |
| 7435 kNameShouldPrintAsAnonymous, | 7427 kNameShouldPrintAsAnonymous, |
| 7436 kIsFunction, | 7428 kIsFunction, |
| 7437 kDontInline, | |
| 7438 kDontCache, | 7429 kDontCache, |
| 7439 kDontFlush, | 7430 kDontFlush, |
| 7440 kIsGenerator, | 7431 kIsGenerator, |
| 7441 kCompilerHintsCount // Pseudo entry | 7432 kCompilerHintsCount // Pseudo entry |
| 7442 }; | 7433 }; |
| 7443 | 7434 |
| 7444 class DeoptCountBits: public BitField<int, 0, 4> {}; | 7435 class DeoptCountBits: public BitField<int, 0, 4> {}; |
| 7445 class OptReenableTriesBits: public BitField<int, 4, 18> {}; | 7436 class OptReenableTriesBits: public BitField<int, 4, 18> {}; |
| 7446 class ICAgeBits: public BitField<int, 22, 8> {}; | 7437 class ICAgeBits: public BitField<int, 22, 8> {}; |
| 7447 | 7438 |
| (...skipping 3728 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 11176 } else { | 11167 } else { |
| 11177 value &= ~(1 << bit_position); | 11168 value &= ~(1 << bit_position); |
| 11178 } | 11169 } |
| 11179 return value; | 11170 return value; |
| 11180 } | 11171 } |
| 11181 }; | 11172 }; |
| 11182 | 11173 |
| 11183 } } // namespace v8::internal | 11174 } } // namespace v8::internal |
| 11184 | 11175 |
| 11185 #endif // V8_OBJECTS_H_ | 11176 #endif // V8_OBJECTS_H_ |
| OLD | NEW |