You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
112 lines
2.9 KiB
112 lines
2.9 KiB
#ifndef SRC_JS_NATIVE_API_TYPES_H_ |
|
#define SRC_JS_NATIVE_API_TYPES_H_ |
|
|
|
// This file needs to be compatible with C compilers. |
|
// This is a public include file, and these includes have essentially |
|
// became part of it's API. |
|
#include <stddef.h> // NOLINT(modernize-deprecated-headers) |
|
#include <stdint.h> // NOLINT(modernize-deprecated-headers) |
|
|
|
#if !defined __cplusplus || (defined(_MSC_VER) && _MSC_VER < 1900) |
|
typedef uint16_t char16_t; |
|
#endif |
|
|
|
// JSVM API types are all opaque pointers for ABI stability |
|
// typedef undefined structs instead of void* for compile time type safety |
|
typedef struct napi_env__* napi_env; |
|
typedef struct napi_value__* napi_value; |
|
typedef struct napi_ref__* napi_ref; |
|
typedef struct napi_handle_scope__* napi_handle_scope; |
|
typedef struct napi_escapable_handle_scope__* napi_escapable_handle_scope; |
|
typedef struct napi_callback_info__* napi_callback_info; |
|
typedef struct napi_deferred__* napi_deferred; |
|
|
|
typedef enum { |
|
napi_default = 0, |
|
napi_writable = 1 << 0, |
|
napi_enumerable = 1 << 1, |
|
napi_configurable = 1 << 2, |
|
|
|
// Used with napi_define_class to distinguish static properties |
|
// from instance properties. Ignored by napi_define_properties. |
|
napi_static = 1 << 10, |
|
} napi_property_attributes; |
|
|
|
typedef enum { |
|
// ES6 types (corresponds to typeof) |
|
napi_undefined, |
|
napi_null, |
|
napi_boolean, |
|
napi_number, |
|
napi_string, |
|
napi_symbol, |
|
napi_object, |
|
napi_function, |
|
napi_external, |
|
napi_bigint, |
|
} napi_valuetype; |
|
|
|
typedef enum { |
|
napi_int8_array, |
|
napi_uint8_array, |
|
napi_uint8_clamped_array, |
|
napi_int16_array, |
|
napi_uint16_array, |
|
napi_int32_array, |
|
napi_uint32_array, |
|
napi_float32_array, |
|
napi_float64_array, |
|
napi_bigint64_array, |
|
napi_biguint64_array, |
|
} napi_typedarray_type; |
|
|
|
typedef enum { |
|
napi_ok, |
|
napi_invalid_arg, |
|
napi_object_expected, |
|
napi_string_expected, |
|
napi_name_expected, |
|
napi_function_expected, |
|
napi_number_expected, |
|
napi_boolean_expected, |
|
napi_array_expected, |
|
napi_generic_failure, |
|
napi_pending_exception, |
|
napi_cancelled, |
|
napi_escape_called_twice, |
|
napi_handle_scope_mismatch, |
|
napi_callback_scope_mismatch, |
|
napi_queue_full, |
|
napi_closing, |
|
napi_bigint_expected, |
|
napi_date_expected, |
|
} napi_status; |
|
|
|
typedef napi_value (*napi_callback)(napi_env env, |
|
napi_callback_info info); |
|
typedef void (*napi_finalize)(napi_env env, |
|
void* finalize_data, |
|
void* finalize_hint); |
|
|
|
typedef struct { |
|
// One of utf8name or name should be NULL. |
|
const char* utf8name; |
|
napi_value name; |
|
|
|
napi_callback method; |
|
napi_callback getter; |
|
napi_callback setter; |
|
napi_value value; |
|
|
|
napi_property_attributes attributes; |
|
void* data; |
|
} napi_property_descriptor; |
|
|
|
typedef struct { |
|
const char* error_message; |
|
void* engine_reserved; |
|
uint32_t engine_error_code; |
|
napi_status error_code; |
|
} napi_extended_error_info; |
|
|
|
#endif // SRC_JS_NATIVE_API_TYPES_H_
|
|
|