aboutsummaryrefslogtreecommitdiff
path: root/src/napi/napi.zig
diff options
context:
space:
mode:
authorGravatar Jarred Sumner <jarred@jarredsumner.com> 2023-09-18 17:31:26 -0700
committerGravatar GitHub <noreply@github.com> 2023-09-18 17:31:26 -0700
commit79dd196edd820db5212da1a524fd5f888b38a3aa (patch)
tree956bdd2f38f86401a3a6293490f26a10fc457b85 /src/napi/napi.zig
parent333e217c320fdf5a6b62fa31df18389f01887bdd (diff)
downloadbun-79dd196edd820db5212da1a524fd5f888b38a3aa.tar.gz
bun-79dd196edd820db5212da1a524fd5f888b38a3aa.tar.zst
bun-79dd196edd820db5212da1a524fd5f888b38a3aa.zip
Implement `node_api_create_external_string_latin1` and `node_api_create_external_string_utf16` (#5675)
Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
Diffstat (limited to 'src/napi/napi.zig')
-rw-r--r--src/napi/napi.zig12
1 files changed, 8 insertions, 4 deletions
diff --git a/src/napi/napi.zig b/src/napi/napi.zig
index d143fe1b3..e86a832b9 100644
--- a/src/napi/napi.zig
+++ b/src/napi/napi.zig
@@ -309,14 +309,14 @@ pub extern fn napi_create_error(env: napi_env, code: napi_value, msg: napi_value
pub extern fn napi_create_type_error(env: napi_env, code: napi_value, msg: napi_value, result: *napi_value) napi_status;
pub extern fn napi_create_range_error(env: napi_env, code: napi_value, msg: napi_value, result: *napi_value) napi_status;
pub extern fn napi_typeof(env: napi_env, value: napi_value, result: *napi_valuetype) napi_status;
-pub export fn napi_get_value_double(_: napi_env, value: napi_value, result: *f64) napi_status {
+pub export fn napi_get_value_double(globalObject: napi_env, value: napi_value, result: *f64) napi_status {
log("napi_get_value_double", .{});
- result.* = value.asNumber();
+ result.* = value.coerce(f64, globalObject);
return .ok;
}
-pub export fn napi_get_value_int32(_: napi_env, value: napi_value, result: *i32) napi_status {
+pub export fn napi_get_value_int32(globalObject: napi_env, value: napi_value, result: *i32) napi_status {
log("napi_get_value_int32", .{});
- result.* = value.to(i32);
+ result.* = value.coerce(i32, globalObject);
return .ok;
}
pub export fn napi_get_value_uint32(_: napi_env, value: napi_value, result: *u32) napi_status {
@@ -1097,6 +1097,8 @@ pub export fn napi_get_buffer_info(env: napi_env, value: napi_value, data: *[*]u
extern fn node_api_create_syntax_error(napi_env, napi_value, napi_value, *napi_value) napi_status;
extern fn node_api_symbol_for(napi_env, [*]const c_char, usize, *napi_value) napi_status;
extern fn node_api_throw_syntax_error(napi_env, [*]const c_char, [*]const c_char) napi_status;
+extern fn node_api_create_external_string_latin1(napi_env, [*:0]u8, usize, napi_finalize, ?*anyopaque, *JSValue, *bool) napi_status;
+extern fn node_api_create_external_string_utf16(napi_env, [*:0]u16, usize, napi_finalize, ?*anyopaque, *JSValue, *bool) napi_status;
pub export fn napi_create_async_work(
env: napi_env,
@@ -1617,5 +1619,7 @@ pub fn fixDeadCodeElimination() void {
std.mem.doNotOptimizeAway(&node_api_create_syntax_error);
std.mem.doNotOptimizeAway(&node_api_symbol_for);
std.mem.doNotOptimizeAway(&node_api_throw_syntax_error);
+ std.mem.doNotOptimizeAway(&node_api_create_external_string_latin1);
+ std.mem.doNotOptimizeAway(&node_api_create_external_string_utf16);
std.mem.doNotOptimizeAway(&@import("../bun.js/node/buffer.zig").BufferVectorized.fill);
}