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 // Review notes: | 5 // Review notes: |
6 // | 6 // |
7 // - The use of macros in these inline functions may seem superfluous | 7 // - The use of macros in these inline functions may seem superfluous |
8 // but it is absolutely needed to make sure gcc generates optimal | 8 // but it is absolutely needed to make sure gcc generates optimal |
9 // code. gcc is not happy when attempting to inline too deep. | 9 // code. gcc is not happy when attempting to inline too deep. |
10 // | 10 // |
(...skipping 5541 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
5552 | 5552 |
5553 void SharedFunctionInfo::set_strict_mode(StrictMode strict_mode) { | 5553 void SharedFunctionInfo::set_strict_mode(StrictMode strict_mode) { |
5554 // We only allow mode transitions from sloppy to strict. | 5554 // We only allow mode transitions from sloppy to strict. |
5555 DCHECK(this->strict_mode() == SLOPPY || this->strict_mode() == strict_mode); | 5555 DCHECK(this->strict_mode() == SLOPPY || this->strict_mode() == strict_mode); |
5556 int hints = compiler_hints(); | 5556 int hints = compiler_hints(); |
5557 hints = BooleanBit::set(hints, kStrictModeFunction, strict_mode == STRICT); | 5557 hints = BooleanBit::set(hints, kStrictModeFunction, strict_mode == STRICT); |
5558 set_compiler_hints(hints); | 5558 set_compiler_hints(hints); |
5559 } | 5559 } |
5560 | 5560 |
5561 | 5561 |
| 5562 FunctionKind SharedFunctionInfo::kind() { |
| 5563 return FunctionKindBits::decode(compiler_hints()); |
| 5564 } |
| 5565 |
| 5566 |
| 5567 void SharedFunctionInfo::set_kind(FunctionKind kind) { |
| 5568 DCHECK(IsValidFunctionKind(kind)); |
| 5569 int hints = compiler_hints(); |
| 5570 hints = FunctionKindBits::update(hints, kind); |
| 5571 set_compiler_hints(hints); |
| 5572 } |
| 5573 |
| 5574 |
5562 BOOL_ACCESSORS(SharedFunctionInfo, compiler_hints, native, kNative) | 5575 BOOL_ACCESSORS(SharedFunctionInfo, compiler_hints, native, kNative) |
5563 BOOL_ACCESSORS(SharedFunctionInfo, compiler_hints, inline_builtin, | 5576 BOOL_ACCESSORS(SharedFunctionInfo, compiler_hints, inline_builtin, |
5564 kInlineBuiltin) | 5577 kInlineBuiltin) |
5565 BOOL_ACCESSORS(SharedFunctionInfo, compiler_hints, | 5578 BOOL_ACCESSORS(SharedFunctionInfo, compiler_hints, |
5566 name_should_print_as_anonymous, | 5579 name_should_print_as_anonymous, |
5567 kNameShouldPrintAsAnonymous) | 5580 kNameShouldPrintAsAnonymous) |
5568 BOOL_ACCESSORS(SharedFunctionInfo, compiler_hints, bound, kBoundFunction) | 5581 BOOL_ACCESSORS(SharedFunctionInfo, compiler_hints, bound, kBoundFunction) |
5569 BOOL_ACCESSORS(SharedFunctionInfo, compiler_hints, is_anonymous, kIsAnonymous) | 5582 BOOL_ACCESSORS(SharedFunctionInfo, compiler_hints, is_anonymous, kIsAnonymous) |
5570 BOOL_ACCESSORS(SharedFunctionInfo, compiler_hints, is_function, kIsFunction) | 5583 BOOL_ACCESSORS(SharedFunctionInfo, compiler_hints, is_function, kIsFunction) |
5571 BOOL_ACCESSORS(SharedFunctionInfo, compiler_hints, dont_cache, kDontCache) | 5584 BOOL_ACCESSORS(SharedFunctionInfo, compiler_hints, dont_cache, kDontCache) |
5572 BOOL_ACCESSORS(SharedFunctionInfo, compiler_hints, dont_flush, kDontFlush) | 5585 BOOL_ACCESSORS(SharedFunctionInfo, compiler_hints, dont_flush, kDontFlush) |
| 5586 BOOL_ACCESSORS(SharedFunctionInfo, compiler_hints, is_arrow, kIsArrow) |
5573 BOOL_ACCESSORS(SharedFunctionInfo, compiler_hints, is_generator, kIsGenerator) | 5587 BOOL_ACCESSORS(SharedFunctionInfo, compiler_hints, is_generator, kIsGenerator) |
5574 BOOL_ACCESSORS(SharedFunctionInfo, compiler_hints, is_arrow, kIsArrow) | 5588 BOOL_ACCESSORS(SharedFunctionInfo, compiler_hints, is_concise_method, |
| 5589 kIsConciseMethod) |
5575 | 5590 |
5576 ACCESSORS(CodeCache, default_cache, FixedArray, kDefaultCacheOffset) | 5591 ACCESSORS(CodeCache, default_cache, FixedArray, kDefaultCacheOffset) |
5577 ACCESSORS(CodeCache, normal_type_cache, Object, kNormalTypeCacheOffset) | 5592 ACCESSORS(CodeCache, normal_type_cache, Object, kNormalTypeCacheOffset) |
5578 | 5593 |
5579 ACCESSORS(PolymorphicCodeCache, cache, Object, kCacheOffset) | 5594 ACCESSORS(PolymorphicCodeCache, cache, Object, kCacheOffset) |
5580 | 5595 |
5581 bool Script::HasValidSource() { | 5596 bool Script::HasValidSource() { |
5582 Object* src = this->source(); | 5597 Object* src = this->source(); |
5583 if (!src->IsString()) return true; | 5598 if (!src->IsString()) return true; |
5584 String* src_str = String::cast(src); | 5599 String* src_str = String::cast(src); |
(...skipping 1663 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
7248 #undef READ_SHORT_FIELD | 7263 #undef READ_SHORT_FIELD |
7249 #undef WRITE_SHORT_FIELD | 7264 #undef WRITE_SHORT_FIELD |
7250 #undef READ_BYTE_FIELD | 7265 #undef READ_BYTE_FIELD |
7251 #undef WRITE_BYTE_FIELD | 7266 #undef WRITE_BYTE_FIELD |
7252 #undef NOBARRIER_READ_BYTE_FIELD | 7267 #undef NOBARRIER_READ_BYTE_FIELD |
7253 #undef NOBARRIER_WRITE_BYTE_FIELD | 7268 #undef NOBARRIER_WRITE_BYTE_FIELD |
7254 | 7269 |
7255 } } // namespace v8::internal | 7270 } } // namespace v8::internal |
7256 | 7271 |
7257 #endif // V8_OBJECTS_INL_H_ | 7272 #endif // V8_OBJECTS_INL_H_ |
OLD | NEW |