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 6289 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
6300 */ | 6300 */ |
6301 struct CreateParams { | 6301 struct CreateParams { |
6302 CreateParams() | 6302 CreateParams() |
6303 : entry_hook(nullptr), | 6303 : entry_hook(nullptr), |
6304 code_event_handler(nullptr), | 6304 code_event_handler(nullptr), |
6305 snapshot_blob(nullptr), | 6305 snapshot_blob(nullptr), |
6306 counter_lookup_callback(nullptr), | 6306 counter_lookup_callback(nullptr), |
6307 create_histogram_callback(nullptr), | 6307 create_histogram_callback(nullptr), |
6308 add_histogram_sample_callback(nullptr), | 6308 add_histogram_sample_callback(nullptr), |
6309 array_buffer_allocator(nullptr), | 6309 array_buffer_allocator(nullptr), |
6310 external_references(nullptr), | 6310 external_references(nullptr) {} |
6311 deserialize_internal_fields_callback(nullptr) {} | |
6312 | 6311 |
6313 /** | 6312 /** |
6314 * The optional entry_hook allows the host application to provide the | 6313 * The optional entry_hook allows the host application to provide the |
6315 * address of a function that's invoked on entry to every V8-generated | 6314 * address of a function that's invoked on entry to every V8-generated |
6316 * function. Note that entry_hook is invoked at the very start of each | 6315 * function. Note that entry_hook is invoked at the very start of each |
6317 * generated function. Furthermore, if an entry_hook is given, V8 will | 6316 * generated function. Furthermore, if an entry_hook is given, V8 will |
6318 * not use a snapshot, including custom snapshots. | 6317 * not use a snapshot, including custom snapshots. |
6319 */ | 6318 */ |
6320 FunctionEntryHook entry_hook; | 6319 FunctionEntryHook entry_hook; |
6321 | 6320 |
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
6357 */ | 6356 */ |
6358 ArrayBuffer::Allocator* array_buffer_allocator; | 6357 ArrayBuffer::Allocator* array_buffer_allocator; |
6359 | 6358 |
6360 /** | 6359 /** |
6361 * Specifies an optional nullptr-terminated array of raw addresses in the | 6360 * Specifies an optional nullptr-terminated array of raw addresses in the |
6362 * embedder that V8 can match against during serialization and use for | 6361 * embedder that V8 can match against during serialization and use for |
6363 * deserialization. This array and its content must stay valid for the | 6362 * deserialization. This array and its content must stay valid for the |
6364 * entire lifetime of the isolate. | 6363 * entire lifetime of the isolate. |
6365 */ | 6364 */ |
6366 intptr_t* external_references; | 6365 intptr_t* external_references; |
6367 | |
6368 /** | |
6369 * Specifies an optional callback to deserialize internal fields. It | |
6370 * should match the SerializeInternalFieldCallback used to serialize. | |
6371 */ | |
6372 DeserializeInternalFieldsCallback deserialize_internal_fields_callback; | |
6373 }; | 6366 }; |
6374 | 6367 |
6375 | 6368 |
6376 /** | 6369 /** |
6377 * Stack-allocated class which sets the isolate for all operations | 6370 * Stack-allocated class which sets the isolate for all operations |
6378 * executed within a local scope. | 6371 * executed within a local scope. |
6379 */ | 6372 */ |
6380 class V8_EXPORT Scope { | 6373 class V8_EXPORT Scope { |
6381 public: | 6374 public: |
6382 explicit Scope(Isolate* isolate) : isolate_(isolate) { | 6375 explicit Scope(Isolate* isolate) : isolate_(isolate) { |
(...skipping 1286 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
7669 * Set the default context to be included in the snapshot blob. | 7662 * Set the default context to be included in the snapshot blob. |
7670 * The snapshot will not contain the global proxy, and we expect one or a | 7663 * The snapshot will not contain the global proxy, and we expect one or a |
7671 * global object template to create one, to be provided upon deserialization. | 7664 * global object template to create one, to be provided upon deserialization. |
7672 */ | 7665 */ |
7673 void SetDefaultContext(Local<Context> context); | 7666 void SetDefaultContext(Local<Context> context); |
7674 | 7667 |
7675 /** | 7668 /** |
7676 * Add additional context to be included in the snapshot blob. | 7669 * Add additional context to be included in the snapshot blob. |
7677 * The snapshot will include the global proxy. | 7670 * The snapshot will include the global proxy. |
7678 * | 7671 * |
| 7672 * \param callback optional callback to serialize internal fields. |
| 7673 * |
7679 * \returns the index of the context in the snapshot blob. | 7674 * \returns the index of the context in the snapshot blob. |
7680 */ | 7675 */ |
7681 size_t AddContext(Local<Context> context); | 7676 size_t AddContext(Local<Context> context, |
| 7677 SerializeInternalFieldsCallback callback = nullptr); |
7682 | 7678 |
7683 /** | 7679 /** |
7684 * Add a template to be included in the snapshot blob. | 7680 * Add a template to be included in the snapshot blob. |
7685 * \returns the index of the template in the snapshot blob. | 7681 * \returns the index of the template in the snapshot blob. |
7686 */ | 7682 */ |
7687 size_t AddTemplate(Local<Template> template_obj); | 7683 size_t AddTemplate(Local<Template> template_obj); |
7688 | 7684 |
7689 /** | 7685 /** |
7690 * Created a snapshot data blob. | 7686 * Created a snapshot data blob. |
7691 * This must not be called from within a handle scope. | 7687 * This must not be called from within a handle scope. |
7692 * \param function_code_handling whether to include compiled function code | 7688 * \param function_code_handling whether to include compiled function code |
7693 * in the snapshot. | 7689 * in the snapshot. |
7694 * \param callback to serialize embedder-set internal fields. | |
7695 * \returns { nullptr, 0 } on failure, and a startup snapshot on success. The | 7690 * \returns { nullptr, 0 } on failure, and a startup snapshot on success. The |
7696 * caller acquires ownership of the data array in the return value. | 7691 * caller acquires ownership of the data array in the return value. |
7697 */ | 7692 */ |
7698 StartupData CreateBlob(FunctionCodeHandling function_code_handling, | 7693 StartupData CreateBlob(FunctionCodeHandling function_code_handling); |
7699 SerializeInternalFieldsCallback callback = nullptr); | |
7700 | 7694 |
7701 // Disallow copying and assigning. | 7695 // Disallow copying and assigning. |
7702 SnapshotCreator(const SnapshotCreator&) = delete; | 7696 SnapshotCreator(const SnapshotCreator&) = delete; |
7703 void operator=(const SnapshotCreator&) = delete; | 7697 void operator=(const SnapshotCreator&) = delete; |
7704 | 7698 |
7705 private: | 7699 private: |
7706 void* data_; | 7700 void* data_; |
7707 }; | 7701 }; |
7708 | 7702 |
7709 /** | 7703 /** |
(...skipping 292 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
8002 /** | 7996 /** |
8003 * Create a new context from a (non-default) context snapshot. There | 7997 * Create a new context from a (non-default) context snapshot. There |
8004 * is no way to provide a global object template since we do not create | 7998 * is no way to provide a global object template since we do not create |
8005 * a new global object from template, but we can reuse a global object. | 7999 * a new global object from template, but we can reuse a global object. |
8006 * | 8000 * |
8007 * \param isolate See v8::Context::New. | 8001 * \param isolate See v8::Context::New. |
8008 * | 8002 * |
8009 * \param context_snapshot_index The index of the context snapshot to | 8003 * \param context_snapshot_index The index of the context snapshot to |
8010 * deserialize from. Use v8::Context::New for the default snapshot. | 8004 * deserialize from. Use v8::Context::New for the default snapshot. |
8011 * | 8005 * |
| 8006 * \param internal_fields_deserializer Optional callback to deserialize |
| 8007 * internal fields. It should match the SerializeInternalFieldCallback used |
| 8008 * to serialize. |
| 8009 * |
8012 * \param extensions See v8::Context::New. | 8010 * \param extensions See v8::Context::New. |
8013 * | 8011 * |
8014 * \param global_object See v8::Context::New. | 8012 * \param global_object See v8::Context::New. |
8015 */ | 8013 */ |
8016 | 8014 |
8017 static MaybeLocal<Context> FromSnapshot( | 8015 static MaybeLocal<Context> FromSnapshot( |
8018 Isolate* isolate, size_t context_snapshot_index, | 8016 Isolate* isolate, size_t context_snapshot_index, |
| 8017 DeserializeInternalFieldsCallback internal_fields_deserializer = nullptr, |
8019 ExtensionConfiguration* extensions = nullptr, | 8018 ExtensionConfiguration* extensions = nullptr, |
8020 MaybeLocal<Value> global_object = MaybeLocal<Value>()); | 8019 MaybeLocal<Value> global_object = MaybeLocal<Value>()); |
8021 | 8020 |
8022 /** | 8021 /** |
8023 * Returns an global object that isn't backed by an actual context. | 8022 * Returns an global object that isn't backed by an actual context. |
8024 * | 8023 * |
8025 * The global template needs to have access checks with handlers installed. | 8024 * The global template needs to have access checks with handlers installed. |
8026 * If an existing global object is passed in, the global object is detached | 8025 * If an existing global object is passed in, the global object is detached |
8027 * from its context. | 8026 * from its context. |
8028 * | 8027 * |
(...skipping 1747 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
9776 */ | 9775 */ |
9777 | 9776 |
9778 | 9777 |
9779 } // namespace v8 | 9778 } // namespace v8 |
9780 | 9779 |
9781 | 9780 |
9782 #undef TYPE_CHECK | 9781 #undef TYPE_CHECK |
9783 | 9782 |
9784 | 9783 |
9785 #endif // INCLUDE_V8_H_ | 9784 #endif // INCLUDE_V8_H_ |
OLD | NEW |