Skip to content

Commit cf9b056

Browse files
committed
node-api: use v-table to reverse module dependencies
1 parent b1e941e commit cf9b056

File tree

8 files changed

+2077
-113
lines changed

8 files changed

+2077
-113
lines changed

src/node_api.cc

Lines changed: 166 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1493,3 +1493,169 @@ node_api_create_buffer_from_arraybuffer(napi_env env,
14931493
}
14941494

14951495
#endif
1496+
1497+
node_api_vtable g_vtable = {
1498+
napi_get_last_error_info,
1499+
napi_get_undefined,
1500+
napi_get_null,
1501+
napi_get_global,
1502+
napi_get_boolean,
1503+
napi_create_object,
1504+
napi_create_array,
1505+
napi_create_array_with_length,
1506+
napi_create_double,
1507+
napi_create_int32,
1508+
napi_create_uint32,
1509+
napi_create_int64,
1510+
napi_create_string_latin1,
1511+
napi_create_string_utf8,
1512+
napi_create_string_utf16,
1513+
napi_create_symbol,
1514+
napi_create_function,
1515+
napi_create_error,
1516+
napi_create_type_error,
1517+
napi_create_range_error,
1518+
napi_typeof,
1519+
napi_get_value_double,
1520+
napi_get_value_int32,
1521+
napi_get_value_uint32,
1522+
napi_get_value_int64,
1523+
napi_get_value_bool,
1524+
napi_get_value_string_latin1,
1525+
napi_get_value_string_utf8,
1526+
napi_get_value_string_utf16,
1527+
napi_coerce_to_bool,
1528+
napi_coerce_to_number,
1529+
napi_coerce_to_object,
1530+
napi_coerce_to_string,
1531+
napi_get_prototype,
1532+
napi_get_property_names,
1533+
napi_set_property,
1534+
napi_has_property,
1535+
napi_get_property,
1536+
napi_delete_property,
1537+
napi_has_own_property,
1538+
napi_set_named_property,
1539+
napi_has_named_property,
1540+
napi_get_named_property,
1541+
napi_set_element,
1542+
napi_has_element,
1543+
napi_get_element,
1544+
napi_delete_element,
1545+
napi_define_properties,
1546+
napi_is_array,
1547+
napi_get_array_length,
1548+
napi_strict_equals,
1549+
napi_call_function,
1550+
napi_new_instance,
1551+
napi_instanceof,
1552+
napi_get_cb_info,
1553+
napi_get_new_target,
1554+
napi_define_class,
1555+
napi_wrap,
1556+
napi_unwrap,
1557+
napi_remove_wrap,
1558+
napi_create_external,
1559+
napi_get_value_external,
1560+
napi_create_reference,
1561+
napi_delete_reference,
1562+
napi_reference_ref,
1563+
napi_reference_unref,
1564+
napi_get_reference_value,
1565+
napi_open_handle_scope,
1566+
napi_close_handle_scope,
1567+
napi_open_escapable_handle_scope,
1568+
napi_close_escapable_handle_scope,
1569+
napi_escape_handle,
1570+
napi_throw,
1571+
napi_throw_error,
1572+
napi_throw_type_error,
1573+
napi_throw_range_error,
1574+
napi_is_error,
1575+
napi_is_exception_pending,
1576+
napi_get_and_clear_last_exception,
1577+
napi_is_arraybuffer,
1578+
napi_create_arraybuffer,
1579+
napi_create_external_arraybuffer,
1580+
napi_get_arraybuffer_info,
1581+
napi_is_typedarray,
1582+
napi_create_typedarray,
1583+
napi_get_typedarray_info,
1584+
napi_create_dataview,
1585+
napi_is_dataview,
1586+
napi_get_dataview_info,
1587+
napi_get_version,
1588+
napi_create_promise,
1589+
napi_resolve_deferred,
1590+
napi_reject_deferred,
1591+
napi_is_promise,
1592+
napi_run_script,
1593+
napi_adjust_external_memory,
1594+
napi_module_register,
1595+
napi_fatal_error,
1596+
napi_async_init,
1597+
napi_async_destroy,
1598+
napi_make_callback,
1599+
napi_create_buffer,
1600+
napi_create_external_buffer,
1601+
napi_create_buffer_copy,
1602+
napi_is_buffer,
1603+
napi_get_buffer_info,
1604+
napi_create_async_work,
1605+
napi_delete_async_work,
1606+
napi_queue_async_work,
1607+
napi_cancel_async_work,
1608+
napi_get_node_version,
1609+
napi_get_uv_event_loop,
1610+
napi_fatal_exception,
1611+
napi_add_env_cleanup_hook,
1612+
napi_remove_env_cleanup_hook,
1613+
napi_open_callback_scope,
1614+
napi_close_callback_scope,
1615+
napi_create_threadsafe_function,
1616+
napi_get_threadsafe_function_context,
1617+
napi_call_threadsafe_function,
1618+
napi_acquire_threadsafe_function,
1619+
napi_release_threadsafe_function,
1620+
napi_unref_threadsafe_function,
1621+
napi_ref_threadsafe_function,
1622+
napi_create_date,
1623+
napi_is_date,
1624+
napi_get_date_value,
1625+
napi_add_finalizer,
1626+
napi_create_bigint_int64,
1627+
napi_create_bigint_uint64,
1628+
napi_create_bigint_words,
1629+
napi_get_value_bigint_int64,
1630+
napi_get_value_bigint_uint64,
1631+
napi_get_value_bigint_words,
1632+
napi_get_all_property_names,
1633+
napi_set_instance_data,
1634+
napi_get_instance_data,
1635+
napi_detach_arraybuffer,
1636+
napi_is_detached_arraybuffer,
1637+
napi_type_tag_object,
1638+
napi_check_object_type_tag,
1639+
napi_object_freeze,
1640+
napi_object_seal,
1641+
napi_add_async_cleanup_hook,
1642+
napi_remove_async_cleanup_hook,
1643+
node_api_symbol_for,
1644+
node_api_create_syntax_error,
1645+
node_api_throw_syntax_error,
1646+
node_api_get_module_file_name,
1647+
node_api_create_external_string_latin1,
1648+
node_api_create_external_string_utf16,
1649+
node_api_create_property_key_latin1,
1650+
node_api_create_property_key_utf8,
1651+
node_api_create_property_key_utf16,
1652+
node_api_create_buffer_from_arraybuffer,
1653+
node_api_post_finalizer,
1654+
napi_create_object_with_properties,
1655+
node_api_is_sharedarraybuffer,
1656+
node_api_create_sharedarraybuffer,
1657+
};
1658+
1659+
node_api_vtable* node_api_get_vtable() {
1660+
return &g_vtable;
1661+
}

0 commit comments

Comments
 (0)