Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1013)

Side by Side Diff: include/v8.h

Issue 2628093003: [serializer] change internal field callbacks to take data pointer. (Closed)
Patch Set: Created 3 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « no previous file | src/api.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 6263 matching lines...) Expand 10 before | Expand all | Expand 10 after
6274 /** 6274 /**
6275 * Returns the number of wrappers that are still to be traced by the embedder. 6275 * Returns the number of wrappers that are still to be traced by the embedder.
6276 */ 6276 */
6277 virtual size_t NumberOfWrappersToTrace() { return 0; } 6277 virtual size_t NumberOfWrappersToTrace() { return 0; }
6278 6278
6279 protected: 6279 protected:
6280 virtual ~EmbedderHeapTracer() = default; 6280 virtual ~EmbedderHeapTracer() = default;
6281 }; 6281 };
6282 6282
6283 /** 6283 /**
6284 * Callback to the embedder used in SnapshotCreator to handle internal fields. 6284 * Callback and supporting data used in SnapshotCreator to implement embedder
6285 * logic to serialize internal fields.
6285 */ 6286 */
6286 typedef StartupData (*SerializeInternalFieldsCallback)(Local<Object> holder, 6287 struct SerializeInternalFieldsCallback {
6287 int index); 6288 typedef StartupData (*CallbackFunction)(Local<Object> holder, int index,
6289 void* data);
6290 SerializeInternalFieldsCallback(CallbackFunction function = nullptr,
6291 void* data_arg = nullptr)
6292 : callback(function), data(data_arg) {}
6293 CallbackFunction callback;
6294 void* data;
6295 };
6288 6296
6289 /** 6297 /**
6290 * Callback to the embedder used to deserialize internal fields. 6298 * Callback and supporting data used to implement embedder logic to deserialize
6299 * internal fields.
6291 */ 6300 */
6292 typedef void (*DeserializeInternalFieldsCallback)(Local<Object> holder, 6301 struct DeserializeInternalFieldsCallback {
6293 int index, 6302 typedef void (*CallbackFunction)(Local<Object> holder, int index,
6294 StartupData payload); 6303 StartupData payload, void* data);
6304 DeserializeInternalFieldsCallback(CallbackFunction function = nullptr,
6305 void* data_arg = nullptr)
6306 : callback(function), data(data_arg) {}
6307 void (*callback)(Local<Object> holder, int index, StartupData payload,
6308 void* data);
6309 void* data;
6310 };
6295 6311
6296 /** 6312 /**
6297 * Isolate represents an isolated instance of the V8 engine. V8 isolates have 6313 * Isolate represents an isolated instance of the V8 engine. V8 isolates have
6298 * completely separate states. Objects from one isolate must not be used in 6314 * completely separate states. Objects from one isolate must not be used in
6299 * other isolates. The embedder can create multiple isolates and use them in 6315 * other isolates. The embedder can create multiple isolates and use them in
6300 * parallel in multiple threads. An isolate can be entered by at most one 6316 * parallel in multiple threads. An isolate can be entered by at most one
6301 * thread at any given time. The Locker/Unlocker API must be used to 6317 * thread at any given time. The Locker/Unlocker API must be used to
6302 * synchronize. 6318 * synchronize.
6303 */ 6319 */
6304 class V8_EXPORT Isolate { 6320 class V8_EXPORT Isolate {
(...skipping 1376 matching lines...) Expand 10 before | Expand all | Expand 10 after
7681 7697
7682 /** 7698 /**
7683 * Add additional context to be included in the snapshot blob. 7699 * Add additional context to be included in the snapshot blob.
7684 * The snapshot will include the global proxy. 7700 * The snapshot will include the global proxy.
7685 * 7701 *
7686 * \param callback optional callback to serialize internal fields. 7702 * \param callback optional callback to serialize internal fields.
7687 * 7703 *
7688 * \returns the index of the context in the snapshot blob. 7704 * \returns the index of the context in the snapshot blob.
7689 */ 7705 */
7690 size_t AddContext(Local<Context> context, 7706 size_t AddContext(Local<Context> context,
7691 SerializeInternalFieldsCallback callback = nullptr); 7707 SerializeInternalFieldsCallback callback =
7708 SerializeInternalFieldsCallback());
7692 7709
7693 /** 7710 /**
7694 * Add a template to be included in the snapshot blob. 7711 * Add a template to be included in the snapshot blob.
7695 * \returns the index of the template in the snapshot blob. 7712 * \returns the index of the template in the snapshot blob.
7696 */ 7713 */
7697 size_t AddTemplate(Local<Template> template_obj); 7714 size_t AddTemplate(Local<Template> template_obj);
7698 7715
7699 /** 7716 /**
7700 * Created a snapshot data blob. 7717 * Created a snapshot data blob.
7701 * This must not be called from within a handle scope. 7718 * This must not be called from within a handle scope.
(...skipping 319 matching lines...) Expand 10 before | Expand all | Expand 10 after
8021 * internal fields. It should match the SerializeInternalFieldCallback used 8038 * internal fields. It should match the SerializeInternalFieldCallback used
8022 * to serialize. 8039 * to serialize.
8023 * 8040 *
8024 * \param extensions See v8::Context::New. 8041 * \param extensions See v8::Context::New.
8025 * 8042 *
8026 * \param global_object See v8::Context::New. 8043 * \param global_object See v8::Context::New.
8027 */ 8044 */
8028 8045
8029 static MaybeLocal<Context> FromSnapshot( 8046 static MaybeLocal<Context> FromSnapshot(
8030 Isolate* isolate, size_t context_snapshot_index, 8047 Isolate* isolate, size_t context_snapshot_index,
8031 DeserializeInternalFieldsCallback internal_fields_deserializer = nullptr, 8048 DeserializeInternalFieldsCallback internal_fields_deserializer =
8049 DeserializeInternalFieldsCallback(),
8032 ExtensionConfiguration* extensions = nullptr, 8050 ExtensionConfiguration* extensions = nullptr,
8033 MaybeLocal<Value> global_object = MaybeLocal<Value>()); 8051 MaybeLocal<Value> global_object = MaybeLocal<Value>());
8034 8052
8035 /** 8053 /**
8036 * Returns an global object that isn't backed by an actual context. 8054 * Returns an global object that isn't backed by an actual context.
8037 * 8055 *
8038 * The global template needs to have access checks with handlers installed. 8056 * The global template needs to have access checks with handlers installed.
8039 * If an existing global object is passed in, the global object is detached 8057 * If an existing global object is passed in, the global object is detached
8040 * from its context. 8058 * from its context.
8041 * 8059 *
(...skipping 1764 matching lines...) Expand 10 before | Expand all | Expand 10 after
9806 */ 9824 */
9807 9825
9808 9826
9809 } // namespace v8 9827 } // namespace v8
9810 9828
9811 9829
9812 #undef TYPE_CHECK 9830 #undef TYPE_CHECK
9813 9831
9814 9832
9815 #endif // INCLUDE_V8_H_ 9833 #endif // INCLUDE_V8_H_
OLDNEW
« no previous file with comments | « no previous file | src/api.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698