Skip to content

Commit 0d838fa

Browse files
authored
fix(ext/napi): suppress deprecated Buffer warnings (#31245)
1 parent 0c9598d commit 0d838fa

File tree

4 files changed

+19
-19
lines changed

4 files changed

+19
-19
lines changed

ext/napi/lib.rs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -391,7 +391,7 @@ pub struct Env {
391391
pub last_error: napi_extended_error_info,
392392
pub last_exception: Option<v8::Global<v8::Value>>,
393393
pub global: v8::Global<v8::Object>,
394-
pub buffer_constructor: v8::Global<v8::Function>,
394+
pub create_buffer: v8::Global<v8::Function>,
395395
pub report_error: v8::Global<v8::Function>,
396396
}
397397

@@ -404,7 +404,7 @@ impl Env {
404404
isolate_ptr: v8::UnsafeRawIsolatePtr,
405405
context: v8::Global<v8::Context>,
406406
global: v8::Global<v8::Object>,
407-
buffer_constructor: v8::Global<v8::Function>,
407+
create_buffer: v8::Global<v8::Function>,
408408
report_error: v8::Global<v8::Function>,
409409
sender: V8CrossThreadTaskSpawner,
410410
cleanup_hooks: Rc<RefCell<Vec<(napi_cleanup_hook, *mut c_void)>>>,
@@ -414,7 +414,7 @@ impl Env {
414414
isolate_ptr,
415415
context: context.into_raw(),
416416
global,
417-
buffer_constructor,
417+
create_buffer,
418418
report_error,
419419
shared: std::ptr::null_mut(),
420420
open_handle_scopes: 0,
@@ -559,7 +559,7 @@ fn op_napi_open<NP, 'scope>(
559559
op_state: Rc<RefCell<OpState>>,
560560
#[string] path: &str,
561561
global: v8::Local<'scope, v8::Object>,
562-
buffer_constructor: v8::Local<'scope, v8::Function>,
562+
create_buffer: v8::Local<'scope, v8::Function>,
563563
report_error: v8::Local<'scope, v8::Function>,
564564
) -> Result<v8::Local<'scope, v8::Value>, NApiError>
565565
where
@@ -605,7 +605,7 @@ where
605605
unsafe { isolate.as_raw_isolate_ptr() },
606606
v8::Global::new(scope, ctx),
607607
v8::Global::new(scope, global),
608-
v8::Global::new(scope, buffer_constructor),
608+
v8::Global::new(scope, create_buffer),
609609
v8::Global::new(scope, report_error),
610610
async_work_sender,
611611
cleanup_hooks,

ext/napi/node_api.rs

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -299,9 +299,9 @@ fn napi_create_buffer<'s>(
299299

300300
let ab = v8::ArrayBuffer::new(scope, length);
301301

302-
let buffer_constructor = v8::Local::new(scope, &env.buffer_constructor);
303-
let Some(buffer) = buffer_constructor.new_instance(scope, &[ab.into()])
304-
else {
302+
let create_buffer = v8::Local::new(scope, &env.create_buffer);
303+
let recv = v8::null(scope).into();
304+
let Some(buffer) = create_buffer.call(scope, recv, &[ab.into()]) else {
305305
return napi_generic_failure;
306306
};
307307

@@ -341,9 +341,9 @@ fn napi_create_external_buffer<'s>(
341341
v8::callback_scope!(unsafe scope, env.context());
342342
let ab = v8::ArrayBuffer::with_backing_store(scope, &store.make_shared());
343343

344-
let buffer_constructor = v8::Local::new(scope, &env.buffer_constructor);
345-
let Some(buffer) = buffer_constructor.new_instance(scope, &[ab.into()])
346-
else {
344+
let create_buffer = v8::Local::new(scope, &env.create_buffer);
345+
let recv = v8::null(scope).into();
346+
let Some(buffer) = create_buffer.call(scope, recv, &[ab.into()]) else {
347347
return napi_generic_failure;
348348
};
349349

@@ -368,9 +368,9 @@ fn napi_create_buffer_copy<'s>(
368368

369369
let ab = v8::ArrayBuffer::new(scope, length);
370370

371-
let buffer_constructor = v8::Local::new(scope, &env.buffer_constructor);
372-
let Some(buffer) = buffer_constructor.new_instance(scope, &[ab.into()])
373-
else {
371+
let create_buffer = v8::Local::new(scope, &env.create_buffer);
372+
let recv = v8::null(scope).into();
373+
let Some(buffer) = create_buffer.call(scope, recv, &[ab.into()]) else {
374374
return napi_generic_failure;
375375
};
376376

ext/node/polyfills/01_require.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1127,7 +1127,7 @@ Module._extensions[".node"] = function (module, filename) {
11271127
module.exports = op_napi_open(
11281128
filename,
11291129
globalThis,
1130-
buffer.Buffer,
1130+
buffer.Buffer.from,
11311131
reportError,
11321132
);
11331133
};

tests/napi/init_test.js

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ Deno.test("ctr initialization (napi_module_register)", {
1010
ignore: Deno.build.os == "windows",
1111
}, function () {
1212
const path = new URL(`./module.${libSuffix}`, import.meta.url).pathname;
13-
const obj = ops.op_napi_open(path, {}, Buffer, reportError);
13+
const obj = ops.op_napi_open(path, {}, Buffer.from, reportError);
1414
assert(obj != null);
1515
assert(typeof obj === "object");
1616
});
@@ -19,7 +19,7 @@ Deno.test("ctr initialization by multiple threads (napi_module_register)", {
1919
ignore: Deno.build.os == "windows",
2020
}, async function () {
2121
const path = new URL(`./module.${libSuffix}`, import.meta.url).pathname;
22-
const obj = ops.op_napi_open(path, {}, Buffer, reportError);
22+
const obj = ops.op_napi_open(path, {}, Buffer.from, reportError);
2323
const common = import.meta.resolve("./common.js");
2424
assert(obj != null);
2525
assert(typeof obj === "object");
@@ -29,9 +29,9 @@ Deno.test("ctr initialization by multiple threads (napi_module_register)", {
2929
import { Buffer } from "node:buffer";
3030
import { parentPort } from "node:worker_threads";
3131
import { assert } from "${common}";
32-
32+
3333
const ops = Deno[Deno.internal].core.ops;
34-
const obj = ops.op_napi_open("${path}", {}, Buffer, reportError);
34+
const obj = ops.op_napi_open("${path}", {}, Buffer.from, reportError);
3535
assert(obj != null);
3636
assert(typeof obj === "object");
3737
parentPort.postMessage("ok");

0 commit comments

Comments
 (0)