Index: runtime/include/dart_api.h |
diff --git a/runtime/include/dart_api.h b/runtime/include/dart_api.h |
index 123064cd193eb4327e2a4e848b7127e9649227b2..627e80f6baaa12153cbe26e7b896dda61db11fcf 100755 |
--- a/runtime/include/dart_api.h |
+++ b/runtime/include/dart_api.h |
@@ -2653,7 +2653,6 @@ DART_EXPORT Dart_Handle Dart_SetNativeResolver( |
* Scripts and Libraries |
* ===================== |
*/ |
-/* TODO(turnidge): Finish documenting this section. */ |
typedef enum { |
Dart_kCanonicalizeUrl = 0, |
@@ -2662,7 +2661,43 @@ typedef enum { |
Dart_kImportTag, |
} Dart_LibraryTag; |
-/* TODO(turnidge): Document. */ |
+/** |
+ * The library tag handler is a multi-purpose callback provided by the |
+ * embedder to the Dart VM. The embedder implements the tag handler to |
+ * provide the ability to load Dart scripts and imports. |
+ * |
+ * -- TAGS -- |
+ * |
+ * Dart_kCanonicalizeUrl |
+ * |
+ * This tag indicates that the embedder should canonicalize 'url' with |
+ * respect to 'library'. For most embedders, the |
+ * Dart_DefaultCanonicalizeUrl function is a sufficient implementation |
+ * of this tag. The return value should be a string holding the |
+ * canonicalized url. |
+ * |
+ * Dart_kScriptTag |
+ * |
+ * This tag indicates that the root script should be loaded from |
+ * 'url'. The 'library' parameter will always be null. Once the root |
+ * script is loaded, the embedder should call Dart_LoadScript to |
+ * install the root script in the VM. The return value should be an |
+ * error or null. |
+ * |
+ * Dart_kSourceTag |
+ * |
+ * This tag is used to load a file referenced by Dart language "part |
+ * of" directive. Once the file's source is loaded, the embedder |
+ * should call Dart_LoadSource to provide the file contents to the VM. |
+ * The return value should be an error or null. |
+ * |
+ * Dart_kImportTag |
+ * |
+ * This tag is used to load a script referenced by Dart language |
+ * "import" directive. Once the script is loaded, the embedder should |
+ * call Dart_LoadLibrary to provide the script source to the VM. The |
+ * return value should be an error or null. |
+ */ |
typedef Dart_Handle (*Dart_LibraryTagHandler)(Dart_LibraryTag tag, |
Dart_Handle library, |
Dart_Handle url); |
@@ -2704,18 +2739,30 @@ DART_EXPORT Dart_Handle Dart_DefaultCanonicalizeUrl(Dart_Handle base_url, |
Dart_Handle url); |
/** |
- * Loads the root script for the current isolate. The script can be |
- * embedded in another file, for example in an html file. |
+ * Called by the embedder to provide the source for the root script to |
+ * the VM. This function should be called in response to a |
+ * Dart_kScriptTag tag handler request (See Dart_LibraryTagHandler, |
+ * above). |
* |
- * TODO(turnidge): Document. |
+ * \param url The original url requested for the script. |
+ * |
+ * \param resolved_url The actual url which was loaded. This parameter |
+ * is optionally provided to support isolate reloading. A value of |
+ * Dart_Null() indicates that the resolved url was the same as the |
+ * requested url. |
+ * |
+ * \param source The contents of the url. |
* |
* \param line_offset is the number of text lines before the |
* first line of the Dart script in the containing file. |
* |
* \param col_offset is the number of characters before the first character |
* in the first line of the Dart script. |
+ * |
+ * \return A valid handle if no error occurs during the operation. |
*/ |
DART_EXPORT Dart_Handle Dart_LoadScript(Dart_Handle url, |
+ Dart_Handle resolved_url, |
Dart_Handle source, |
intptr_t line_offset, |
intptr_t col_offset); |
@@ -2808,7 +2855,33 @@ DART_EXPORT Dart_Handle Dart_LibraryHandleError(Dart_Handle library, |
Dart_Handle error); |
+/** |
+ * Called by the embedder to provide the source for an "import" |
+ * directive. This function should be called in response to a |
+ * Dart_kImportTag tag handler request (See Dart_LibraryTagHandler, |
+ * above). |
+ * |
+ * \param library The library where the "import" directive occurs. |
+ * |
+ * \param url The original url requested for the import. |
+ * |
+ * \param resolved_url The actual url which was loaded. This parameter |
+ * is optionally provided to support isolate reloading. A value of |
+ * Dart_Null() indicates that the resolved url was the same as the |
+ * requested url. |
+ * |
+ * \param source The contents of the url. |
+ * |
+ * \param line_offset is the number of text lines before the |
+ * first line of the Dart script in the containing file. |
+ * |
+ * \param col_offset is the number of characters before the first character |
+ * in the first line of the Dart script. |
+ * |
+ * \return A valid handle if no error occurs during the operation. |
+ */ |
DART_EXPORT Dart_Handle Dart_LoadLibrary(Dart_Handle url, |
+ Dart_Handle resolved_url, |
Dart_Handle source, |
intptr_t line_offset, |
intptr_t column_offset); |
@@ -2829,16 +2902,33 @@ DART_EXPORT Dart_Handle Dart_LibraryImportLibrary(Dart_Handle library, |
Dart_Handle prefix); |
/** |
- * Loads a source string into a library. |
+ * Called by the embedder to provide the source for a "part of" |
+ * directive. This function should be called in response to a |
+ * Dart_kSourceTag tag handler request (See Dart_LibraryTagHandler, |
+ * above). |
* |
- * \param library A library |
- * \param url A url identifying the origin of the source |
- * \param source A string of Dart source |
+ * \param library The library where the "part of" directive occurs. |
+ * |
+ * \param url The original url requested for the part. |
+ * |
+ * \param resolved_url The actual url which was loaded. This parameter |
+ * is optionally provided to support isolate reloading. A value of |
+ * Dart_Null() indicates that the resolved url was the same as the |
+ * requested url. |
+ * |
+ * \param source The contents of the url. |
+ * |
+ * \param line_offset is the number of text lines before the |
+ * first line of the Dart script in the containing file. |
+ * |
+ * \param col_offset is the number of characters before the first character |
+ * in the first line of the Dart script. |
* |
* \return A valid handle if no error occurs during the operation. |
*/ |
DART_EXPORT Dart_Handle Dart_LoadSource(Dart_Handle library, |
Dart_Handle url, |
+ Dart_Handle resolved_url, |
Dart_Handle source, |
intptr_t line_offset, |
intptr_t column_offset); |