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 5142 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
5153 void operator delete(void*, size_t); | 5153 void operator delete(void*, size_t); |
5154 | 5154 |
5155 void SetObjectGroupId(internal::Object** object, UniqueId id); | 5155 void SetObjectGroupId(internal::Object** object, UniqueId id); |
5156 void SetReferenceFromGroup(UniqueId id, internal::Object** object); | 5156 void SetReferenceFromGroup(UniqueId id, internal::Object** object); |
5157 void SetReference(internal::Object** parent, internal::Object** child); | 5157 void SetReference(internal::Object** parent, internal::Object** child); |
5158 void CollectAllGarbage(const char* gc_reason); | 5158 void CollectAllGarbage(const char* gc_reason); |
5159 }; | 5159 }; |
5160 | 5160 |
5161 class V8_EXPORT StartupData { | 5161 class V8_EXPORT StartupData { |
5162 public: | 5162 public: |
5163 enum CompressionAlgorithm { | |
5164 kUncompressed, | |
5165 kBZip2 | |
5166 }; | |
5167 | |
5168 const char* data; | 5163 const char* data; |
5169 int compressed_size; | 5164 int compressed_size; // TODO(yangguo): remove this. |
5170 int raw_size; | 5165 int raw_size; |
5171 }; | 5166 }; |
5172 | 5167 |
5173 | 5168 |
5174 /** | 5169 /** |
5175 * A helper class for driving V8 startup data decompression. It is based on | |
5176 * "CompressedStartupData" API functions from the V8 class. It isn't mandatory | |
5177 * for an embedder to use this class, instead, API functions can be used | |
5178 * directly. | |
5179 * | |
5180 * For an example of the class usage, see the "shell.cc" sample application. | |
5181 */ | |
5182 class V8_EXPORT StartupDataDecompressor { // NOLINT | |
5183 public: | |
5184 StartupDataDecompressor(); | |
5185 virtual ~StartupDataDecompressor(); | |
5186 int Decompress(); | |
5187 | |
5188 protected: | |
5189 virtual int DecompressData(char* raw_data, | |
5190 int* raw_data_size, | |
5191 const char* compressed_data, | |
5192 int compressed_data_size) = 0; | |
5193 | |
5194 private: | |
5195 char** raw_data; | |
5196 }; | |
5197 | |
5198 | |
5199 /** | |
5200 * EntropySource is used as a callback function when v8 needs a source | 5170 * EntropySource is used as a callback function when v8 needs a source |
5201 * of entropy. | 5171 * of entropy. |
5202 */ | 5172 */ |
5203 typedef bool (*EntropySource)(unsigned char* buffer, size_t length); | 5173 typedef bool (*EntropySource)(unsigned char* buffer, size_t length); |
5204 | 5174 |
5205 | 5175 |
5206 /** | 5176 /** |
5207 * ReturnAddressLocationResolver is used as a callback function when v8 is | 5177 * ReturnAddressLocationResolver is used as a callback function when v8 is |
5208 * resolving the location of a return address on the stack. Profilers that | 5178 * resolving the location of a return address on the stack. Profilers that |
5209 * change the return address on the stack can use this to resolve the stack | 5179 * change the return address on the stack can use this to resolve the stack |
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
5246 static void SetArrayBufferAllocator(ArrayBuffer::Allocator* allocator); | 5216 static void SetArrayBufferAllocator(ArrayBuffer::Allocator* allocator); |
5247 | 5217 |
5248 /** | 5218 /** |
5249 * Check if V8 is dead and therefore unusable. This is the case after | 5219 * Check if V8 is dead and therefore unusable. This is the case after |
5250 * fatal errors such as out-of-memory situations. | 5220 * fatal errors such as out-of-memory situations. |
5251 */ | 5221 */ |
5252 // TODO(dcarney): deprecate this. | 5222 // TODO(dcarney): deprecate this. |
5253 V8_INLINE static bool IsDead(); | 5223 V8_INLINE static bool IsDead(); |
5254 | 5224 |
5255 /** | 5225 /** |
5256 * The following 4 functions are to be used when V8 is built with | |
5257 * the 'compress_startup_data' flag enabled. In this case, the | |
5258 * embedder must decompress startup data prior to initializing V8. | |
5259 * | |
5260 * This is how interaction with V8 should look like: | |
5261 * int compressed_data_count = v8::V8::GetCompressedStartupDataCount(); | |
5262 * v8::StartupData* compressed_data = | |
5263 * new v8::StartupData[compressed_data_count]; | |
5264 * v8::V8::GetCompressedStartupData(compressed_data); | |
5265 * ... decompress data (compressed_data can be updated in-place) ... | |
5266 * v8::V8::SetDecompressedStartupData(compressed_data); | |
5267 * ... now V8 can be initialized | |
5268 * ... make sure the decompressed data stays valid until V8 shutdown | |
5269 * | |
5270 * A helper class StartupDataDecompressor is provided. It implements | |
5271 * the protocol of the interaction described above, and can be used in | |
5272 * most cases instead of calling these API functions directly. | |
5273 */ | |
5274 static StartupData::CompressionAlgorithm GetCompressedStartupDataAlgorithm(); | |
5275 static int GetCompressedStartupDataCount(); | |
5276 static void GetCompressedStartupData(StartupData* compressed_data); | |
5277 static void SetDecompressedStartupData(StartupData* decompressed_data); | |
5278 | |
5279 /** | |
5280 * Hand startup data to V8, in case the embedder has chosen to build | 5226 * Hand startup data to V8, in case the embedder has chosen to build |
5281 * V8 with external startup data. | 5227 * V8 with external startup data. |
5282 * | 5228 * |
5283 * Note: | 5229 * Note: |
5284 * - By default the startup data is linked into the V8 library, in which | 5230 * - By default the startup data is linked into the V8 library, in which |
5285 * case this function is not meaningful. | 5231 * case this function is not meaningful. |
5286 * - If this needs to be called, it needs to be called before V8 | 5232 * - If this needs to be called, it needs to be called before V8 |
5287 * tries to make use of its built-ins. | 5233 * tries to make use of its built-ins. |
5288 * - To avoid unnecessary copies of data, V8 will point directly into the | 5234 * - To avoid unnecessary copies of data, V8 will point directly into the |
5289 * given data blob, so pretty please keep it around until V8 exit. | 5235 * given data blob, so pretty please keep it around until V8 exit. |
(...skipping 2142 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
7432 */ | 7378 */ |
7433 | 7379 |
7434 | 7380 |
7435 } // namespace v8 | 7381 } // namespace v8 |
7436 | 7382 |
7437 | 7383 |
7438 #undef TYPE_CHECK | 7384 #undef TYPE_CHECK |
7439 | 7385 |
7440 | 7386 |
7441 #endif // V8_H_ | 7387 #endif // V8_H_ |
OLD | NEW |