| 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 /** \mainpage V8 API Reference Guide | 5 /** \mainpage V8 API Reference Guide |
| 6 * | 6 * |
| 7 * V8 is Google's open source JavaScript engine. | 7 * V8 is Google's open source JavaScript engine. |
| 8 * | 8 * |
| 9 * This set of documents provides reference material generated from the | 9 * This set of documents provides reference material generated from the |
| 10 * V8 header file, include/v8.h. | 10 * V8 header file, include/v8.h. |
| (...skipping 7475 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 7486 static const int kJSObjectHeaderSize = 3 * kApiPointerSize; | 7486 static const int kJSObjectHeaderSize = 3 * kApiPointerSize; |
| 7487 static const int kFixedArrayHeaderSize = 2 * kApiPointerSize; | 7487 static const int kFixedArrayHeaderSize = 2 * kApiPointerSize; |
| 7488 static const int kContextHeaderSize = 2 * kApiPointerSize; | 7488 static const int kContextHeaderSize = 2 * kApiPointerSize; |
| 7489 static const int kContextEmbedderDataIndex = 5; | 7489 static const int kContextEmbedderDataIndex = 5; |
| 7490 static const int kFullStringRepresentationMask = 0x07; | 7490 static const int kFullStringRepresentationMask = 0x07; |
| 7491 static const int kStringEncodingMask = 0x4; | 7491 static const int kStringEncodingMask = 0x4; |
| 7492 static const int kExternalTwoByteRepresentationTag = 0x02; | 7492 static const int kExternalTwoByteRepresentationTag = 0x02; |
| 7493 static const int kExternalOneByteRepresentationTag = 0x06; | 7493 static const int kExternalOneByteRepresentationTag = 0x06; |
| 7494 | 7494 |
| 7495 static const int kIsolateEmbedderDataOffset = 0 * kApiPointerSize; | 7495 static const int kIsolateEmbedderDataOffset = 0 * kApiPointerSize; |
| 7496 static const int kAmountOfExternalAllocatedMemoryOffset = | 7496 static const int kExternalMemoryOffset = 4 * kApiPointerSize; |
| 7497 4 * kApiPointerSize; | 7497 static const int kExternalMemoryLimitOffset = |
| 7498 static const int kAmountOfExternalAllocatedMemoryAtLastGlobalGCOffset = | 7498 kExternalMemoryOffset + kApiInt64Size; |
| 7499 kAmountOfExternalAllocatedMemoryOffset + kApiInt64Size; | 7499 static const int kIsolateRootsOffset = kExternalMemoryLimitOffset + |
| 7500 static const int kIsolateRootsOffset = | 7500 kApiInt64Size + kApiInt64Size + |
| 7501 kAmountOfExternalAllocatedMemoryAtLastGlobalGCOffset + kApiInt64Size + | 7501 kApiPointerSize + kApiPointerSize; |
| 7502 kApiPointerSize + kApiPointerSize; | |
| 7503 static const int kUndefinedValueRootIndex = 4; | 7502 static const int kUndefinedValueRootIndex = 4; |
| 7504 static const int kTheHoleValueRootIndex = 5; | 7503 static const int kTheHoleValueRootIndex = 5; |
| 7505 static const int kNullValueRootIndex = 6; | 7504 static const int kNullValueRootIndex = 6; |
| 7506 static const int kTrueValueRootIndex = 7; | 7505 static const int kTrueValueRootIndex = 7; |
| 7507 static const int kFalseValueRootIndex = 8; | 7506 static const int kFalseValueRootIndex = 8; |
| 7508 static const int kEmptyStringRootIndex = 9; | 7507 static const int kEmptyStringRootIndex = 9; |
| 7509 | 7508 |
| 7510 // The external allocation limit should be below 256 MB on all architectures | |
| 7511 // to avoid that resource-constrained embedders run low on memory. | |
| 7512 static const int kExternalAllocationLimit = 192 * 1024 * 1024; | |
| 7513 | |
| 7514 static const int kNodeClassIdOffset = 1 * kApiPointerSize; | 7509 static const int kNodeClassIdOffset = 1 * kApiPointerSize; |
| 7515 static const int kNodeFlagsOffset = 1 * kApiPointerSize + 3; | 7510 static const int kNodeFlagsOffset = 1 * kApiPointerSize + 3; |
| 7516 static const int kNodeStateMask = 0x7; | 7511 static const int kNodeStateMask = 0x7; |
| 7517 static const int kNodeStateIsWeakValue = 2; | 7512 static const int kNodeStateIsWeakValue = 2; |
| 7518 static const int kNodeStateIsPendingValue = 3; | 7513 static const int kNodeStateIsPendingValue = 3; |
| 7519 static const int kNodeStateIsNearDeathValue = 4; | 7514 static const int kNodeStateIsNearDeathValue = 4; |
| 7520 static const int kNodeIsIndependentShift = 3; | 7515 static const int kNodeIsIndependentShift = 3; |
| 7521 static const int kNodeIsPartiallyDependentShift = 4; | 7516 static const int kNodeIsPartiallyDependentShift = 4; |
| 7522 static const int kNodeIsActiveShift = 4; | 7517 static const int kNodeIsActiveShift = 4; |
| 7523 | 7518 |
| (...skipping 1174 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 8698 | 8693 |
| 8699 uint32_t Isolate::GetNumberOfDataSlots() { | 8694 uint32_t Isolate::GetNumberOfDataSlots() { |
| 8700 typedef internal::Internals I; | 8695 typedef internal::Internals I; |
| 8701 return I::kNumIsolateDataSlots; | 8696 return I::kNumIsolateDataSlots; |
| 8702 } | 8697 } |
| 8703 | 8698 |
| 8704 | 8699 |
| 8705 int64_t Isolate::AdjustAmountOfExternalAllocatedMemory( | 8700 int64_t Isolate::AdjustAmountOfExternalAllocatedMemory( |
| 8706 int64_t change_in_bytes) { | 8701 int64_t change_in_bytes) { |
| 8707 typedef internal::Internals I; | 8702 typedef internal::Internals I; |
| 8708 int64_t* amount_of_external_allocated_memory = | 8703 int64_t* external_memory = reinterpret_cast<int64_t*>( |
| 8709 reinterpret_cast<int64_t*>(reinterpret_cast<uint8_t*>(this) + | 8704 reinterpret_cast<uint8_t*>(this) + I::kExternalMemoryOffset); |
| 8710 I::kAmountOfExternalAllocatedMemoryOffset); | 8705 const int64_t external_memory_limit = *reinterpret_cast<int64_t*>( |
| 8711 int64_t* amount_of_external_allocated_memory_at_last_global_gc = | 8706 reinterpret_cast<uint8_t*>(this) + I::kExternalMemoryLimitOffset); |
| 8712 reinterpret_cast<int64_t*>( | 8707 const int64_t amount = *external_memory + change_in_bytes; |
| 8713 reinterpret_cast<uint8_t*>(this) + | 8708 *external_memory = amount; |
| 8714 I::kAmountOfExternalAllocatedMemoryAtLastGlobalGCOffset); | 8709 if (change_in_bytes > 0 && amount > external_memory_limit) { |
| 8715 int64_t amount = *amount_of_external_allocated_memory + change_in_bytes; | |
| 8716 if (change_in_bytes > 0 && | |
| 8717 amount - *amount_of_external_allocated_memory_at_last_global_gc > | |
| 8718 I::kExternalAllocationLimit) { | |
| 8719 ReportExternalAllocationLimitReached(); | 8710 ReportExternalAllocationLimitReached(); |
| 8720 } | 8711 } |
| 8721 *amount_of_external_allocated_memory = amount; | 8712 return *external_memory; |
| 8722 return *amount_of_external_allocated_memory; | |
| 8723 } | 8713 } |
| 8724 | 8714 |
| 8725 | 8715 |
| 8726 template<typename T> | 8716 template<typename T> |
| 8727 void Isolate::SetObjectGroupId(const Persistent<T>& object, | 8717 void Isolate::SetObjectGroupId(const Persistent<T>& object, |
| 8728 UniqueId id) { | 8718 UniqueId id) { |
| 8729 TYPE_CHECK(Value, T); | 8719 TYPE_CHECK(Value, T); |
| 8730 SetObjectGroupId(reinterpret_cast<v8::internal::Object**>(object.val_), id); | 8720 SetObjectGroupId(reinterpret_cast<v8::internal::Object**>(object.val_), id); |
| 8731 } | 8721 } |
| 8732 | 8722 |
| (...skipping 152 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 8885 */ | 8875 */ |
| 8886 | 8876 |
| 8887 | 8877 |
| 8888 } // namespace v8 | 8878 } // namespace v8 |
| 8889 | 8879 |
| 8890 | 8880 |
| 8891 #undef TYPE_CHECK | 8881 #undef TYPE_CHECK |
| 8892 | 8882 |
| 8893 | 8883 |
| 8894 #endif // INCLUDE_V8_H_ | 8884 #endif // INCLUDE_V8_H_ |
| OLD | NEW |