Index: runtime/include/dart_api.h |
=================================================================== |
--- runtime/include/dart_api.h (revision 9490) |
+++ runtime/include/dart_api.h (working copy) |
@@ -2022,6 +2022,165 @@ |
DART_EXPORT Dart_Handle Dart_ClassGetInterfaceAt(Dart_Handle clazz, |
intptr_t index); |
+// --- Function and Variable Declarations --- |
+ |
+/** |
+ * Returns a list of the names of all functions or methods declared in |
+ * a library or class. |
+ * |
+ * \param target A library or class. |
+ * |
+ * \return If no error occurs, a list of strings is returned. |
+ * Otherwise an erorr handle is returned. |
+ */ |
+DART_EXPORT Dart_Handle Dart_GetFunctionNames(Dart_Handle target); |
+ |
+/** |
+ * Looks up a function or method declaration by name from a library or |
+ * class. |
+ * |
+ * \param target The library or class containing the function. |
+ * \param function_name The name of the function. |
+ * |
+ * \return If an error is encountered, returns an error handle. |
+ * Otherwise returns a function handle if the function is found of |
+ * Dart_Null() if the function is not found. |
+ */ |
+DART_EXPORT Dart_Handle Dart_LookupFunction(Dart_Handle target, |
+ Dart_Handle function_name); |
+ |
+/** |
+ * Is this a function or method declaration handle? |
+ */ |
+DART_EXPORT bool Dart_IsFunction(Dart_Handle handle); |
+ |
+/** |
+ * Returns the name for the provided function or method. |
+ * |
+ * \return A valid string handle if no error occurs during the |
+ * operation. |
+ */ |
+DART_EXPORT Dart_Handle Dart_FunctionName(Dart_Handle function); |
+ |
+/** |
+ * Determines whether a function handle refers to an abstract method. |
+ * |
+ * \param function A handle to a function or method declaration. |
+ * \param is_static Returns whether the handle refers to an abstract method. |
+ * |
+ * \return A valid handle if no error occurs during the operation. |
+ */ |
+DART_EXPORT Dart_Handle Dart_FunctionIsAbstract(Dart_Handle function, |
+ bool* is_abstract); |
+ |
+/** |
+ * Determines whether a function handle referes to a static function |
+ * of method. |
+ * |
+ * For the purposes of the embedding API, a top-level function is |
+ * implicitly declared static. |
+ * |
+ * \param function A handle to a function or method declaration. |
+ * \param is_static Returns whether the function or method is declared static. |
+ * |
+ * \return A valid handle if no error occurs during the operation. |
+ */ |
+DART_EXPORT Dart_Handle Dart_FunctionIsStatic(Dart_Handle function, |
+ bool* is_static); |
+ |
+/** |
+ * Determines whether a function handle referes to a constructor. |
+ * |
+ * \param function A handle to a function or method declaration. |
+ * \param is_static Returns whether the function or method is a constructor. |
+ * |
+ * \return A valid handle if no error occurs during the operation. |
+ */ |
+DART_EXPORT Dart_Handle Dart_FunctionIsConstructor(Dart_Handle function, |
+ bool* is_constructor); |
+// TODO(turnidge): Document behavior for factory constructors too. |
+ |
+/** |
+ * Determines whether a function or method is a getter. |
+ * |
+ * \param function A handle to a function or method declaration. |
+ * \param is_static Returns whether the function or method is a getter. |
+ * |
+ * \return A valid handle if no error occurs during the operation. |
+ */ |
+DART_EXPORT Dart_Handle Dart_FunctionIsGetter(Dart_Handle function, |
+ bool* is_getter); |
+ |
+/** |
+ * Determines whether a function or method is a setter. |
+ * |
+ * \param function A handle to a function or method declaration. |
+ * \param is_static Returns whether the function or method is a setter. |
+ * |
+ * \return A valid handle if no error occurs during the operation. |
+ */ |
+DART_EXPORT Dart_Handle Dart_FunctionIsSetter(Dart_Handle function, |
+ bool* is_setter); |
+ |
+/** |
+ * Returns a list of the names of all variables declared in a library |
+ * or class. |
+ * |
+ * \param target A library or class. |
+ * |
+ * \return If no error occurs, a list of strings is returned. |
+ * Otherwise an erorr handle is returned. |
+ */ |
+DART_EXPORT Dart_Handle Dart_GetVariableNames(Dart_Handle target); |
+ |
+/** |
+ * Looks up a variable declaration by name from a library or class. |
+ * |
+ * \param library The library or class containing the variable. |
+ * \param variable_name The name of the variable. |
+ * |
+ * \return If an error is encountered, returns an error handle. |
+ * Otherwise returns a variable handle if the variable is found or |
+ * Dart_Null() if the variable is not found. |
+ */ |
+DART_EXPORT Dart_Handle Dart_LookupVariable(Dart_Handle target, |
+ Dart_Handle variable_name); |
+ |
+/** |
+ * Is this a variable declaration handle? |
+ */ |
+DART_EXPORT bool Dart_IsVariable(Dart_Handle handle); |
+ |
+/** |
+ * Returns the name for the provided variable. |
+ */ |
+DART_EXPORT Dart_Handle Dart_VariableName(Dart_Handle variable); |
+ |
+/** |
+ * Determines whether a variable is declared static. |
+ * |
+ * For the purposes of the embedding API, a top-level variable is |
+ * implicitly declared static. |
+ * |
+ * \param variable A handle to a variable declaration. |
+ * \param is_static Returns whether the variable is declared static. |
+ * |
+ * \return A valid handle if no error occurs during the operation. |
+ */ |
+DART_EXPORT Dart_Handle Dart_VariableIsStatic(Dart_Handle variable, |
+ bool* is_static); |
+ |
+/** |
+ * Determines whether a variable is declared final. |
+ * |
+ * \param variable A handle to a variable declaration. |
+ * \param is_final Returns whether the variable is declared final. |
+ * |
+ * \return A valid handle if no error occurs during the operation. |
+ */ |
+DART_EXPORT Dart_Handle Dart_VariableIsFinal(Dart_Handle variable, |
+ bool* is_final); |
+ |
// --- Constructors, Methods, and Fields --- |
/** |