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

Unified Diff: include/v8.h

Issue 2703563002: [ESNext] Implement DynamicImportCall (Closed)
Patch Set: rebase Created 3 years, 8 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 side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | src/api.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: include/v8.h
diff --git a/include/v8.h b/include/v8.h
index ae84f389ab16f426d493fb74d18acc7c715588ca..0bcd7e6aa8b182d45cdf3374cc119002563522c0 100644
--- a/include/v8.h
+++ b/include/v8.h
@@ -1106,6 +1106,28 @@ class V8_EXPORT Module {
};
/**
+ * This is an unfinished experimental feature, and is only exposed
+ * here for internal testing purposes. DO NOT USE.
+ *
+ * A compiled JavaScript module.
+ */
+class V8_EXPORT DynamicImportResult {
+ public:
+ /**
+ * Resolves the promise with the namespace object of the given
+ * module.
+ */
+ V8_WARN_UNUSED_RESULT bool FinishDynamicImportSuccess(Local<Context> context,
+ Local<Module> module);
+
+ /**
+ * Rejects the promise with the given exception.
+ */
+ V8_WARN_UNUSED_RESULT bool FinishDynamicImportFailure(Local<Context> context,
+ Local<Value> exception);
+};
+
+/**
* A compiled JavaScript script, tied to a Context which was active when the
* script was compiled.
*/
@@ -5949,6 +5971,25 @@ typedef void (*CallCompletedCallback)(Isolate*);
typedef void (*DeprecatedCallCompletedCallback)();
/**
+ * HostImportDynamicallyCallback is called when we require the
+ * embedder to load a module. This is used as part of the dynamic
+ * import syntax. The behavior of this callback is not specified in
+ * EcmaScript.
+ *
+ * The referrer is the name of the file which calls the dynamic
+ * import. The referrer can be used to resolve the module location.
+ *
+ * The specifier is the name of the module that should be imported.
+ *
+ * The DynamicImportResult object is used to signal success or failure
+ * by calling it's respective methods.
+ *
+ */
+typedef void (*HostImportModuleDynamicallyCallback)(
+ Isolate* isolate, Local<String> referrer, Local<String> specifier,
+ Local<DynamicImportResult> result);
+
+/**
* PromiseHook with type kInit is called when a new promise is
* created. When a new promise is created as part of the chain in the
* case of Promise.then or in the intermediate promises created by
@@ -6495,7 +6536,8 @@ class V8_EXPORT Isolate {
add_histogram_sample_callback(nullptr),
array_buffer_allocator(nullptr),
external_references(nullptr),
- allow_atomics_wait(true) {}
+ allow_atomics_wait(true),
+ host_import_module_dynamically_callback_(nullptr) {}
/**
* The optional entry_hook allows the host application to provide the
@@ -6558,6 +6600,16 @@ class V8_EXPORT Isolate {
* this isolate.
*/
bool allow_atomics_wait;
+
+ /**
+ * This is an unfinished experimental feature, and is only exposed
+ * here for internal testing purposes. DO NOT USE.
+ *
+ * This specifies the callback called by the upcoming dynamic
+ * import() language feature to load modules.
+ */
+ HostImportModuleDynamicallyCallback
+ host_import_module_dynamically_callback_;
};
« no previous file with comments | « no previous file | src/api.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698