| Index: runtime/include/dart_api.h
|
| ===================================================================
|
| --- runtime/include/dart_api.h (revision 24032)
|
| +++ runtime/include/dart_api.h (working copy)
|
| @@ -65,7 +65,11 @@
|
|
|
| #include <assert.h>
|
|
|
| -/* --- Handles --- */
|
| +/*
|
| + * =======
|
| + * Handles
|
| + * =======
|
| + */
|
|
|
| /**
|
| * An object reference managed by the Dart VM garbage collector.
|
| @@ -483,8 +487,13 @@
|
| Dart_WeakPersistentHandle* values,
|
| intptr_t num_values);
|
|
|
| -/* --- Garbage Collection Callbacks --- */
|
|
|
| +/*
|
| + * ============================
|
| + * Garbage Collection Callbacks
|
| + * ============================
|
| + */
|
| +
|
| /**
|
| * Callbacks signal the beginning and end of a garbage collection.
|
| *
|
| @@ -553,8 +562,13 @@
|
| DART_EXPORT Dart_Handle Dart_RemoveGcEpilogueCallback(
|
| Dart_GcEpilogueCallback callback);
|
|
|
| -/* --- Initialization and Globals --- */
|
|
|
| +/*
|
| + * ==========================
|
| + * Initialization and Globals
|
| + * ==========================
|
| + */
|
| +
|
| /**
|
| * Gets the version string for the Dart VM.
|
| *
|
| @@ -744,8 +758,13 @@
|
| */
|
| DART_EXPORT bool Dart_IsVMFlagSet(const char* flag_name);
|
|
|
| -/* --- Isolates --- */
|
|
|
| +/*
|
| + * ========
|
| + * Isolates
|
| + * ========
|
| + */
|
| +
|
| /**
|
| * Creates a new isolate. The new isolate becomes the current isolate.
|
| *
|
| @@ -865,7 +884,6 @@
|
| DART_EXPORT Dart_Handle Dart_CreateScriptSnapshot(uint8_t** buffer,
|
| intptr_t* size);
|
|
|
| -
|
| /**
|
| * Schedules an interrupt for the specified isolate.
|
| *
|
| @@ -880,7 +898,6 @@
|
| */
|
| DART_EXPORT void Dart_InterruptIsolate(Dart_Isolate isolate);
|
|
|
| -
|
| /**
|
| * Make isolate runnable.
|
| *
|
| @@ -894,7 +911,11 @@
|
| DART_EXPORT bool Dart_IsolateMakeRunnable(Dart_Isolate isolate);
|
|
|
|
|
| -/* --- Messages and Ports --- */
|
| +/*
|
| + * ==================
|
| + * Messages and Ports
|
| + * ==================
|
| + */
|
|
|
| /**
|
| * A port is used to send or receive inter-isolate messages
|
| @@ -996,8 +1017,13 @@
|
| */
|
| DART_EXPORT Dart_Handle Dart_GetReceivePort(Dart_Port port_id);
|
|
|
| -/* --- Scopes ---- */
|
|
|
| +/*
|
| + * ======
|
| + * Scopes
|
| + * ======
|
| + */
|
| +
|
| /**
|
| * Enters a new scope.
|
| *
|
| @@ -1042,8 +1068,13 @@
|
| */
|
| DART_EXPORT uint8_t* Dart_ScopeAllocate(intptr_t size);
|
|
|
| -/* --- Objects ---- */
|
|
|
| +/*
|
| + * =======
|
| + * Objects
|
| + * =======
|
| + */
|
| +
|
| /**
|
| * Returns the null object.
|
| *
|
| @@ -1093,7 +1124,39 @@
|
| Dart_Handle type,
|
| bool* instanceof);
|
|
|
| -/* --- Instances ----
|
| +
|
| +/**
|
| + * Query object type.
|
| + *
|
| + * \param object Some Object.
|
| + *
|
| + * \return true if Object is of the specified type.
|
| + */
|
| +DART_EXPORT bool Dart_IsInstance(Dart_Handle object);
|
| +DART_EXPORT bool Dart_IsNumber(Dart_Handle object);
|
| +DART_EXPORT bool Dart_IsInteger(Dart_Handle object);
|
| +DART_EXPORT bool Dart_IsDouble(Dart_Handle object);
|
| +DART_EXPORT bool Dart_IsBoolean(Dart_Handle object);
|
| +DART_EXPORT bool Dart_IsString(Dart_Handle object);
|
| +DART_EXPORT bool Dart_IsStringLatin1(Dart_Handle object); /* (ISO-8859-1) */
|
| +DART_EXPORT bool Dart_IsExternalString(Dart_Handle object);
|
| +DART_EXPORT bool Dart_IsList(Dart_Handle object);
|
| +DART_EXPORT bool Dart_IsLibrary(Dart_Handle object);
|
| +DART_EXPORT bool Dart_IsClass(Dart_Handle handle);
|
| +DART_EXPORT bool Dart_IsAbstractClass(Dart_Handle handle);
|
| +DART_EXPORT bool Dart_IsFunction(Dart_Handle handle);
|
| +DART_EXPORT bool Dart_IsVariable(Dart_Handle handle);
|
| +DART_EXPORT bool Dart_IsTypeVariable(Dart_Handle handle);
|
| +DART_EXPORT bool Dart_IsClosure(Dart_Handle object);
|
| +
|
| +
|
| +/*
|
| + * =========
|
| + * Instances
|
| + * =========
|
| + */
|
| +
|
| +/*
|
| * For the purposes of the embedding api, not all objects returned are
|
| * Dart language objects. Within the api, we use the term 'Instance'
|
| * to indicate handles which refer to true Dart language objects.
|
| @@ -1102,11 +1165,6 @@
|
| * any functions that more properly belong here. */
|
|
|
| /**
|
| - * Does this handle refer to some Dart language object?
|
| - */
|
| -DART_EXPORT bool Dart_IsInstance(Dart_Handle object);
|
| -
|
| -/**
|
| * Gets the class for some Dart language object.
|
| *
|
| * \param instance Some Dart object.
|
| @@ -1116,21 +1174,14 @@
|
| */
|
| DART_EXPORT Dart_Handle Dart_InstanceGetClass(Dart_Handle instance);
|
|
|
| -/* --- Numbers ---- */
|
|
|
| -/**
|
| - * Is this object a Number?
|
| +/*
|
| + * =============================
|
| + * Numbers, Integers and Doubles
|
| + * =============================
|
| */
|
| -DART_EXPORT bool Dart_IsNumber(Dart_Handle object);
|
|
|
| -/* --- Integers ---- */
|
| -
|
| /**
|
| - * Is this object an Integer?
|
| - */
|
| -DART_EXPORT bool Dart_IsInteger(Dart_Handle object);
|
| -
|
| -/**
|
| * Does this Integer fit into a 64-bit signed integer?
|
| *
|
| * \param integer An integer.
|
| @@ -1213,9 +1264,34 @@
|
| DART_EXPORT Dart_Handle Dart_IntegerToHexCString(Dart_Handle integer,
|
| const char** value);
|
|
|
| -/* --- Booleans ---- */
|
| +/**
|
| + * Returns a Double with the provided value.
|
| + *
|
| + * \param value A double.
|
| + *
|
| + * \return The Double object if no error occurs. Otherwise returns
|
| + * an error handle.
|
| + */
|
| +DART_EXPORT Dart_Handle Dart_NewDouble(double value);
|
|
|
| /**
|
| + * Gets the value of a Double
|
| + *
|
| + * \param double_obj A Double
|
| + * \param value Returns the value of the Double.
|
| + *
|
| + * \return A valid handle if no error occurs during the operation.
|
| + */
|
| +DART_EXPORT Dart_Handle Dart_DoubleValue(Dart_Handle double_obj, double* value);
|
| +
|
| +
|
| +/*
|
| + * ========
|
| + * Booleans
|
| + * ========
|
| + */
|
| +
|
| +/**
|
| * Returns the True object.
|
| *
|
| * Requires there to be a current isolate.
|
| @@ -1234,11 +1310,6 @@
|
| DART_EXPORT Dart_Handle Dart_False();
|
|
|
| /**
|
| - * Is this object a Boolean?
|
| - */
|
| -DART_EXPORT bool Dart_IsBoolean(Dart_Handle object);
|
| -
|
| -/**
|
| * Returns a Boolean with the provided value.
|
| *
|
| * \param value true or false.
|
| @@ -1258,46 +1329,14 @@
|
| */
|
| DART_EXPORT Dart_Handle Dart_BooleanValue(Dart_Handle boolean_obj, bool* value);
|
|
|
| -/* --- Doubles --- */
|
|
|
| -/**
|
| - * Is this object a Double?
|
| +/*
|
| + * =======
|
| + * Strings
|
| + * =======
|
| */
|
| -DART_EXPORT bool Dart_IsDouble(Dart_Handle object);
|
|
|
| /**
|
| - * Returns a Double with the provided value.
|
| - *
|
| - * \param value A double.
|
| - *
|
| - * \return The Double object if no error occurs. Otherwise returns
|
| - * an error handle.
|
| - */
|
| -DART_EXPORT Dart_Handle Dart_NewDouble(double value);
|
| -
|
| -/**
|
| - * Gets the value of a Double
|
| - *
|
| - * \param double_obj A Double
|
| - * \param value Returns the value of the Double.
|
| - *
|
| - * \return A valid handle if no error occurs during the operation.
|
| - */
|
| -DART_EXPORT Dart_Handle Dart_DoubleValue(Dart_Handle double_obj, double* value);
|
| -
|
| -/* --- Strings --- */
|
| -
|
| -/**
|
| - * Is this object a String?
|
| - */
|
| -DART_EXPORT bool Dart_IsString(Dart_Handle object);
|
| -
|
| -/**
|
| - * Is this object a Latin-1 (ISO-8859-1) String?
|
| - */
|
| -DART_EXPORT bool Dart_IsStringLatin1(Dart_Handle object);
|
| -
|
| -/**
|
| * Gets the length of a String.
|
| *
|
| * \param str A String.
|
| @@ -1359,14 +1398,6 @@
|
| intptr_t length);
|
|
|
| /**
|
| - * Is this object an external String?
|
| - *
|
| - * An external String is a String which references a fixed array of
|
| - * codepoints which is external to the Dart heap.
|
| - */
|
| -DART_EXPORT bool Dart_IsExternalString(Dart_Handle object);
|
| -
|
| -/**
|
| * Retrieves the peer pointer associated with an external String.
|
| */
|
| DART_EXPORT Dart_Handle Dart_ExternalStringGetPeer(Dart_Handle object,
|
| @@ -1512,12 +1543,11 @@
|
| Dart_PeerFinalizer cback);
|
|
|
|
|
| -/* --- Lists --- */
|
| -
|
| -/**
|
| - * Is this object a List?
|
| +/*
|
| + * =====
|
| + * Lists
|
| + * =====
|
| */
|
| -DART_EXPORT bool Dart_IsList(Dart_Handle object);
|
|
|
| /**
|
| * Returns a List of the desired length.
|
| @@ -1590,8 +1620,13 @@
|
| uint8_t* native_array,
|
| intptr_t length);
|
|
|
| -/* --- Typed Data --- */
|
|
|
| +/*
|
| + * ==========
|
| + * Typed Data
|
| + * ==========
|
| + */
|
| +
|
| typedef enum {
|
| Dart_TypedData_kByteData = 0,
|
| Dart_TypedData_kInt8,
|
| @@ -1689,380 +1724,13 @@
|
| DART_EXPORT Dart_Handle Dart_TypedDataReleaseData(Dart_Handle object);
|
|
|
|
|
| -/* --- Closures --- */
|
| -
|
| -/**
|
| - * Is this object a Closure?
|
| +/*
|
| + * ============================================================
|
| + * Invoking Constructors, Methods, Closures and Field accessors
|
| + * ============================================================
|
| */
|
| -DART_EXPORT bool Dart_IsClosure(Dart_Handle object);
|
|
|
| /**
|
| - * Retrieves the function of a closure.
|
| - *
|
| - * \return A handle to the function of the closure, or an error handle if the
|
| - * argument is not a closure.
|
| - */
|
| -DART_EXPORT Dart_Handle Dart_ClosureFunction(Dart_Handle closure);
|
| -
|
| -/**
|
| - * Invokes a Closure with the given arguments.
|
| - *
|
| - * May generate an unhandled exception error.
|
| - *
|
| - * \return If no error occurs during execution, then the result of
|
| - * invoking the closure is returned. If an error occurs during
|
| - * execution, then an error handle is returned.
|
| - */
|
| -DART_EXPORT Dart_Handle Dart_InvokeClosure(Dart_Handle closure,
|
| - int number_of_arguments,
|
| - Dart_Handle* arguments);
|
| -
|
| -/* --- Classes and Interfaces --- */
|
| -
|
| -/**
|
| - * Is this a class handle?
|
| - */
|
| -DART_EXPORT bool Dart_IsClass(Dart_Handle handle);
|
| -
|
| -/**
|
| - * Is this an abstract class handle?
|
| - */
|
| -DART_EXPORT bool Dart_IsAbstractClass(Dart_Handle handle);
|
| -
|
| -/**
|
| - * Returns the class name for the provided class or interface.
|
| - */
|
| -DART_EXPORT Dart_Handle Dart_ClassName(Dart_Handle clazz);
|
| -
|
| -/**
|
| - * Returns the library for the provided class or interface.
|
| - */
|
| -DART_EXPORT Dart_Handle Dart_ClassGetLibrary(Dart_Handle clazz);
|
| -
|
| -/**
|
| - * Returns the number of interfaces directly implemented by some class
|
| - * or interface.
|
| - *
|
| - * TODO(turnidge): Finish documentation.
|
| - */
|
| -DART_EXPORT Dart_Handle Dart_ClassGetInterfaceCount(Dart_Handle clazz,
|
| - intptr_t* count);
|
| -
|
| -/**
|
| - * Returns the interface at some index in the list of interfaces some
|
| - * class or inteface.
|
| - *
|
| - * TODO(turnidge): Finish documentation.
|
| - */
|
| -DART_EXPORT Dart_Handle Dart_ClassGetInterfaceAt(Dart_Handle clazz,
|
| - intptr_t index);
|
| -
|
| -/**
|
| - * Is this class defined by a typedef?
|
| - *
|
| - * Typedef definitions from the main program are represented as a
|
| - * special kind of class handle. See Dart_ClassGetTypedefReferent.
|
| - *
|
| - * TODO(turnidge): Finish documentation.
|
| - */
|
| -DART_EXPORT bool Dart_ClassIsTypedef(Dart_Handle clazz);
|
| -
|
| -/**
|
| - * Returns a handle to the type to which a typedef refers.
|
| - *
|
| - * It is an error to call this function on a handle for which
|
| - * Dart_ClassIsTypedef is not true.
|
| - *
|
| - * TODO(turnidge): Finish documentation.
|
| - */
|
| -DART_EXPORT Dart_Handle Dart_ClassGetTypedefReferent(Dart_Handle clazz);
|
| -
|
| -/**
|
| - * Does this class represent the type of a function?
|
| - */
|
| -DART_EXPORT bool Dart_ClassIsFunctionType(Dart_Handle clazz);
|
| -
|
| -/**
|
| - * Returns a function handle representing the signature associated
|
| - * with a function type.
|
| - *
|
| - * The return value is a function handle (See Dart_IsFunction, etc.).
|
| - *
|
| - * TODO(turnidge): Finish documentation.
|
| - */
|
| -DART_EXPORT Dart_Handle Dart_ClassGetFunctionTypeSignature(Dart_Handle clazz);
|
| -
|
| -/* --- 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 error 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);
|
| -
|
| -/**
|
| - * Returns a handle to the owner of a function.
|
| - *
|
| - * The owner of an instance method or a static method is its defining
|
| - * class. The owner of a top-level function is its defining
|
| - * library. The owner of the function of a non-implicit closure is the
|
| - * function of the method or closure that defines the non-implicit
|
| - * closure.
|
| - *
|
| - * \return A valid handle to the owner of the function, or an error
|
| - * handle if the argument is not a valid handle to a function.
|
| - */
|
| -DART_EXPORT Dart_Handle Dart_FunctionOwner(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 the return type of a function.
|
| - *
|
| - * \return A valid handle to a type or an error handle if the argument
|
| - * is not valid.
|
| - */
|
| -DART_EXPORT Dart_Handle Dart_FunctionReturnType(Dart_Handle function);
|
| -
|
| -/**
|
| - * Determines the number of required and optional parameters.
|
| - *
|
| - * \param function A handle to a function or method declaration.
|
| - * \param fixed_param_count Returns the number of required parameters.
|
| - * \param opt_param_count Returns the number of optional parameters.
|
| - *
|
| - * \return A valid handle if no error occurs during the operation.
|
| - */
|
| -DART_EXPORT Dart_Handle Dart_FunctionParameterCounts(
|
| - Dart_Handle function,
|
| - int64_t* fixed_param_count,
|
| - int64_t* opt_param_count);
|
| -
|
| -/**
|
| - * Returns a handle to the type of a function parameter.
|
| - *
|
| - * \return A valid handle to a type or an error handle if the argument
|
| - * is not valid.
|
| - */
|
| -DART_EXPORT Dart_Handle Dart_FunctionParameterType(Dart_Handle function,
|
| - int parameter_index);
|
| -
|
| -/**
|
| - * 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 error 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 target 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);
|
| -
|
| -/**
|
| - * Returns the type of a variable.
|
| - *
|
| - * \return A valid handle to a type of or an error handle if the
|
| - * argument is not valid.
|
| - */
|
| -DART_EXPORT Dart_Handle Dart_VariableType(Dart_Handle function);
|
| -
|
| -/**
|
| - * Returns a list of the names of all type variables declared in a class.
|
| - *
|
| - * The type variables list preserves the original declaration order.
|
| - *
|
| - * \param clazz A class.
|
| - *
|
| - * \return If no error occurs, a list of strings is returned.
|
| - * Otherwise an error handle is returned.
|
| - */
|
| -DART_EXPORT Dart_Handle Dart_GetTypeVariableNames(Dart_Handle clazz);
|
| -
|
| -/**
|
| - * Looks up a type variable declaration by name from a class.
|
| - *
|
| - * \param clazz The class containing the type variable.
|
| - * \param variable_name The name of the type variable.
|
| - *
|
| - * \return If an error is encountered, returns an error handle.
|
| - * Otherwise returns a type variable handle if the type variable is
|
| - * found or Dart_Null() if the type variable is not found.
|
| - */
|
| -DART_EXPORT Dart_Handle Dart_LookupTypeVariable(Dart_Handle clazz,
|
| - Dart_Handle type_variable_name);
|
| -
|
| -/**
|
| - * Is this a type variable handle?
|
| - */
|
| -DART_EXPORT bool Dart_IsTypeVariable(Dart_Handle handle);
|
| -
|
| -/**
|
| - * Returns the name for the provided type variable.
|
| - */
|
| -DART_EXPORT Dart_Handle Dart_TypeVariableName(Dart_Handle type_variable);
|
| -
|
| -/**
|
| - * Returns the owner of a function.
|
| - *
|
| - * The owner of a type variable is its defining class.
|
| - *
|
| - * \return A valid handle to the owner of the type variable, or an error
|
| - * handle if the argument is not a valid handle to a type variable.
|
| - */
|
| -DART_EXPORT Dart_Handle Dart_TypeVariableOwner(Dart_Handle type_variable);
|
| -
|
| -/**
|
| - * Returns the upper bound of a type variable.
|
| - *
|
| - * The upper bound of a type variable is ...
|
| - *
|
| - * \return A valid handle to a type, or an error handle if the
|
| - * argument is not a valid handle.
|
| - */
|
| -DART_EXPORT Dart_Handle Dart_TypeVariableUpperBound(Dart_Handle type_variable);
|
| -/* TODO(turnidge): Finish documentation. */
|
| -
|
| -/* --- Constructors, Methods, and Fields --- */
|
| -
|
| -/**
|
| * Invokes a constructor, creating a new object.
|
| *
|
| * This function allows hidden constructors (constructors with leading
|
| @@ -2113,6 +1781,19 @@
|
| /* TODO(turnidge): Document how to invoke operators. */
|
|
|
| /**
|
| + * Invokes a Closure with the given arguments.
|
| + *
|
| + * May generate an unhandled exception error.
|
| + *
|
| + * \return If no error occurs during execution, then the result of
|
| + * invoking the closure is returned. If an error occurs during
|
| + * execution, then an error handle is returned.
|
| + */
|
| +DART_EXPORT Dart_Handle Dart_InvokeClosure(Dart_Handle closure,
|
| + int number_of_arguments,
|
| + Dart_Handle* arguments);
|
| +
|
| +/**
|
| * Gets the value of a field.
|
| *
|
| * The 'container' parameter may be an object, class, or library. If
|
| @@ -2157,39 +1838,14 @@
|
| Dart_Handle name,
|
| Dart_Handle value);
|
|
|
| -/**
|
| - * Creates a native wrapper class.
|
| - *
|
| - * TODO(turnidge): Document.
|
| - */
|
| -DART_EXPORT Dart_Handle Dart_CreateNativeWrapperClass(Dart_Handle library,
|
| - Dart_Handle class_name,
|
| - int field_count);
|
|
|
| -/**
|
| - * Gets the number of native instance fields in an object.
|
| +/*
|
| + * ==========
|
| + * Exceptions
|
| + * ==========
|
| */
|
| -DART_EXPORT Dart_Handle Dart_GetNativeInstanceFieldCount(Dart_Handle obj,
|
| - int* count);
|
|
|
| -/**
|
| - * Gets the value of a native field.
|
| - *
|
| - * TODO(turnidge): Document.
|
| - */
|
| -DART_EXPORT Dart_Handle Dart_GetNativeInstanceField(Dart_Handle obj,
|
| - int index,
|
| - intptr_t* value);
|
| -/**
|
| - * Sets the value of a native field.
|
| - *
|
| - * TODO(turnidge): Document.
|
| - */
|
| -DART_EXPORT Dart_Handle Dart_SetNativeInstanceField(Dart_Handle obj,
|
| - int index,
|
| - intptr_t value);
|
| -
|
| -/* --- Exceptions ----
|
| +/*
|
| * TODO(turnidge): Remove these functions from the api and replace all
|
| * uses with Dart_NewUnhandledExceptionError. */
|
|
|
| @@ -2224,9 +1880,47 @@
|
| DART_EXPORT Dart_Handle Dart_RethrowException(Dart_Handle exception,
|
| Dart_Handle stacktrace);
|
|
|
| -/* --- Native functions --- */
|
|
|
| +/*
|
| + * ===========================
|
| + * Native fields and functions
|
| + * ===========================
|
| + */
|
| +
|
| /**
|
| + * Creates a native wrapper class.
|
| + *
|
| + * TODO(turnidge): Document.
|
| + */
|
| +DART_EXPORT Dart_Handle Dart_CreateNativeWrapperClass(Dart_Handle library,
|
| + Dart_Handle class_name,
|
| + int field_count);
|
| +
|
| +/**
|
| + * Gets the number of native instance fields in an object.
|
| + */
|
| +DART_EXPORT Dart_Handle Dart_GetNativeInstanceFieldCount(Dart_Handle obj,
|
| + int* count);
|
| +
|
| +/**
|
| + * Gets the value of a native field.
|
| + *
|
| + * TODO(turnidge): Document.
|
| + */
|
| +DART_EXPORT Dart_Handle Dart_GetNativeInstanceField(Dart_Handle obj,
|
| + int index,
|
| + intptr_t* value);
|
| +
|
| +/**
|
| + * Sets the value of a native field.
|
| + *
|
| + * TODO(turnidge): Document.
|
| + */
|
| +DART_EXPORT Dart_Handle Dart_SetNativeInstanceField(Dart_Handle obj,
|
| + int index,
|
| + intptr_t value);
|
| +
|
| +/**
|
| * The arguments to a native function.
|
| *
|
| * This object is passed to a native function to represent its
|
| @@ -2274,24 +1968,26 @@
|
| /* TODO(turnidge): Consider renaming to NativeFunctionResolver or
|
| * NativeResolver. */
|
|
|
| -
|
| -/* --- Metadata support --- */
|
| -
|
| /**
|
| - * Get metadata associated with an object.
|
| + * Sets the callback used to resolve native functions for a library.
|
| *
|
| - * \param obj Object for which the metadata is retrieved.
|
| + * \param library A library.
|
| + * \param resolver A native entry resolver.
|
| *
|
| - * \return If no error occurs, returns an array of metadata values.
|
| - * Returns an empty array if there is no metadata for the object.
|
| - * Returns an error if the evaluation of the metadata expressions fails.
|
| - *
|
| + * \return A valid handle if the native resolver was set successfully.
|
| */
|
| -DART_EXPORT Dart_Handle Dart_GetMetadata(Dart_Handle obj);
|
| +DART_EXPORT Dart_Handle Dart_SetNativeResolver(
|
| + Dart_Handle library,
|
| + Dart_NativeEntryResolver resolver);
|
| +/* TODO(turnidge): Rename to Dart_LibrarySetNativeResolver? */
|
|
|
|
|
| -/* --- Scripts and Libraries ---
|
| - * TODO(turnidge): Finish documenting this section. */
|
| +/*
|
| + * =====================
|
| + * Scripts and Libraries
|
| + * =====================
|
| + */
|
| +/* TODO(turnidge): Finish documenting this section. */
|
|
|
| typedef enum {
|
| Dart_kLibraryTag = 0,
|
| @@ -2362,25 +2058,6 @@
|
| DART_EXPORT Dart_Handle Dart_RootLibrary();
|
|
|
| /**
|
| - * Forces all loaded classes and functions to be compiled eagerly in
|
| - * the current isolate..
|
| - *
|
| - * TODO(turnidge): Document.
|
| - */
|
| -DART_EXPORT Dart_Handle Dart_CompileAll();
|
| -
|
| -/**
|
| - * Check that all function fingerprints are OK.
|
| - *
|
| - */
|
| -DART_EXPORT Dart_Handle Dart_CheckFunctionFingerprints();
|
| -
|
| -/**
|
| - * Is this object a Library?
|
| - */
|
| -DART_EXPORT bool Dart_IsLibrary(Dart_Handle object);
|
| -
|
| -/**
|
| * Lookup a class or interface by name from a Library.
|
| *
|
| * \param library The library containing the class or interface.
|
| @@ -2395,24 +2072,10 @@
|
| * not found to distinguish that from a true error case. */
|
|
|
| /**
|
| - * Returns the name of a library as declared in the #library directive.
|
| - */
|
| -DART_EXPORT Dart_Handle Dart_LibraryName(Dart_Handle library);
|
| -
|
| -/**
|
| * Returns the url from which a library was loaded.
|
| */
|
| DART_EXPORT Dart_Handle Dart_LibraryUrl(Dart_Handle library);
|
|
|
| -/**
|
| - * Returns a list of the names of all classes and interfaces declared
|
| - * in a library.
|
| - *
|
| - * \return If no error occurs, a list of strings is returned.
|
| - * Otherwise an error handle is returned.
|
| - */
|
| -DART_EXPORT Dart_Handle Dart_LibraryGetClassNames(Dart_Handle library);
|
| -
|
| DART_EXPORT Dart_Handle Dart_LookupLibrary(Dart_Handle url);
|
| /* TODO(turnidge): Consider returning Dart_Null() when the library is
|
| * not found to distinguish that from a true error case. */
|
| @@ -2461,47 +2124,13 @@
|
| Dart_Handle url,
|
| Dart_Handle patch_source);
|
|
|
| -/**
|
| - * Sets the callback used to resolve native functions for a library.
|
| - *
|
| - * \param library A library.
|
| - * \param resolver A native entry resolver.
|
| - *
|
| - * \return A valid handle if the native resolver was set successfully.
|
| - */
|
| -DART_EXPORT Dart_Handle Dart_SetNativeResolver(
|
| - Dart_Handle library,
|
| - Dart_NativeEntryResolver resolver);
|
| -/* TODO(turnidge): Rename to Dart_LibrarySetNativeResolver? */
|
|
|
| -/* --- Profiling support ---- */
|
| -
|
| -/* External pprof support for gathering and dumping symbolic
|
| - * information that can be used for better profile reports for
|
| - * dynamically generated code. */
|
| -DART_EXPORT void Dart_InitPprofSupport();
|
| -DART_EXPORT void Dart_GetPprofSymbolInfo(void** buffer, int* buffer_size);
|
| -
|
| -/* Support for generating symbol maps for use by the Linux perf tool. */
|
| -DART_EXPORT void Dart_InitPerfEventsSupport(void* perf_events_file);
|
| -
|
| -/* --- Heap Profiler --- */
|
| -
|
| -/**
|
| - * Generates a heap profile.
|
| - *
|
| - * \param callback A function pointer that will be repeatedly invoked
|
| - * with heap profile data.
|
| - * \param stream A pointer that will be passed to the callback. This
|
| - * is a convenient way to provide an open stream to the callback.
|
| - *
|
| - * \return Success if the heap profile is successful.
|
| +/*
|
| + * =====
|
| + * Peers
|
| + * =====
|
| */
|
| -DART_EXPORT Dart_Handle Dart_HeapProfile(Dart_FileWriteCallback callback,
|
| - void* stream);
|
|
|
| -/* --- Peers --- */
|
| -
|
| /**
|
| * The peer field is a lazily allocated field intendend for storage of
|
| * an uncommonly used values. Most instances types can have a peer
|
| @@ -2533,124 +2162,4 @@
|
| */
|
| DART_EXPORT Dart_Handle Dart_SetPeer(Dart_Handle object, void* peer);
|
|
|
| -/* --- Message sending/receiving from native code ---- */
|
| -
|
| -/**
|
| - * A Dart_CObject is used for representing Dart objects as native C
|
| - * data outside the Dart heap. These objects are totally detached from
|
| - * the Dart heap. Only a subset of the Dart objects have a
|
| - * representation as a Dart_CObject.
|
| - *
|
| - * The string encoding in the 'value.as_string' is UTF-8.
|
| - *
|
| - * All the different types from dart:typed_data are exposed as type
|
| - * kTypedData. The specific type from dart:typed_data is in the type
|
| - * field of the as_typed_data structure. The length in the
|
| - * as_typed_data structure is always in bytes.
|
| - */
|
| -typedef enum {
|
| - Dart_CObject_kNull = 0,
|
| - Dart_CObject_kBool,
|
| - Dart_CObject_kInt32,
|
| - Dart_CObject_kInt64,
|
| - Dart_CObject_kBigint,
|
| - Dart_CObject_kDouble,
|
| - Dart_CObject_kString,
|
| - Dart_CObject_kArray,
|
| - Dart_CObject_kTypedData,
|
| - Dart_CObject_kExternalTypedData,
|
| - Dart_CObject_kUnsupported,
|
| - Dart_CObject_kNumberOfTypes
|
| -} Dart_CObject_Type;
|
| -
|
| -typedef struct _Dart_CObject {
|
| - Dart_CObject_Type type;
|
| - union {
|
| - bool as_bool;
|
| - int32_t as_int32;
|
| - int64_t as_int64;
|
| - double as_double;
|
| - char* as_string;
|
| - char* as_bigint;
|
| - struct {
|
| - int length;
|
| - struct _Dart_CObject** values;
|
| - } as_array;
|
| - struct {
|
| - Dart_TypedData_Type type;
|
| - int length;
|
| - uint8_t* values;
|
| - } as_typed_data;
|
| - struct {
|
| - Dart_TypedData_Type type;
|
| - int length;
|
| - uint8_t* data;
|
| - void* peer;
|
| - Dart_WeakPersistentHandleFinalizer callback;
|
| - } as_external_typed_data;
|
| - } value;
|
| -} Dart_CObject;
|
| -
|
| -/**
|
| - * Posts a message on some port. The message will contain the
|
| - * Dart_CObject object graph rooted in 'message'.
|
| - *
|
| - * While the message is being sent the state of the graph of
|
| - * Dart_CObject structures rooted in 'message' should not be accessed,
|
| - * as the message generation will make temporary modifications to the
|
| - * data. When the message has been sent the graph will be fully
|
| - * restored.
|
| - *
|
| - * \param port_id The destination port.
|
| - * \param message The message to send.
|
| - *
|
| - * \return True if the message was posted.
|
| - */
|
| -DART_EXPORT bool Dart_PostCObject(Dart_Port port_id, Dart_CObject* message);
|
| -
|
| -/**
|
| - * A native message handler.
|
| - *
|
| - * This handler is associated with a native port by calling
|
| - * Dart_NewNativePort.
|
| - *
|
| - * The message received is decoded into the message structure. The
|
| - * lifetime of the message data is controlled by the caller. All the
|
| - * data references from the message are allocated by the caller and
|
| - * will be reclaimed when returning to it.
|
| - */
|
| -
|
| -typedef void (*Dart_NativeMessageHandler)(Dart_Port dest_port_id,
|
| -Dart_Port reply_port_id,
|
| -Dart_CObject* message);
|
| -
|
| -/**
|
| - * Creates a new native port. When messages are received on this
|
| - * native port, then they will be dispatched to the provided native
|
| - * message handler.
|
| - *
|
| - * \param name The name of this port in debugging messages.
|
| - * \param handler The C handler to run when messages arrive on the port.
|
| - * \param handle_concurrently Is it okay to process requests on this
|
| - * native port concurrently?
|
| - *
|
| - * \return If successful, returns the port id for the native port. In
|
| - * case of error, returns ILLEGAL_PORT.
|
| - */
|
| -DART_EXPORT Dart_Port Dart_NewNativePort(const char* name,
|
| - Dart_NativeMessageHandler handler,
|
| - bool handle_concurrently);
|
| -/* TODO(turnidge): Currently handle_concurrently is ignored. */
|
| -
|
| -/**
|
| - * Closes the native port with the given id.
|
| - *
|
| - * The port must have been allocated by a call to Dart_NewNativePort.
|
| - *
|
| - * \param native_port_id The id of the native port to close.
|
| - *
|
| - * \return Returns true if the port was closed successfully.
|
| - */
|
| -DART_EXPORT bool Dart_CloseNativePort(Dart_Port native_port_id);
|
| -
|
| #endif /* INCLUDE_DART_API_H_ */ /* NOLINT */
|
|
|