mirror of
https://github.com/denoland/deno.git
synced 2025-09-26 12:19:12 +00:00
fix(napi): add napi_async_init and napi_async_destroy (#19234)
We don't have support for "AsyncContext" in "node:async_hooks" module, so these two APIs are just noops. Towards https://github.com/denoland/deno/issues/18610.
This commit is contained in:
parent
0bb5bbc7a0
commit
e56695daa8
4 changed files with 152 additions and 7 deletions
53
test_napi/make_callback_test.js
Normal file
53
test_napi/make_callback_test.js
Normal file
|
@ -0,0 +1,53 @@
|
|||
// Copyright 2018-2023 the Deno authors. All rights reserved. MIT license.
|
||||
|
||||
import { assertEquals, loadTestLibrary } from "./common.js";
|
||||
|
||||
const mc = loadTestLibrary();
|
||||
|
||||
Deno.test("napi makeCallback1", function () {
|
||||
const resource = {};
|
||||
|
||||
let callCount = 0;
|
||||
function cb() {
|
||||
callCount++;
|
||||
assertEquals(arguments.length, 0);
|
||||
assertEquals(this, globalThis);
|
||||
return 42;
|
||||
}
|
||||
assertEquals(mc.makeCallback(resource, globalThis, cb), 42);
|
||||
assertEquals(callCount, 1);
|
||||
});
|
||||
|
||||
Deno.test("napi makeCallback2", function () {
|
||||
const resource = {};
|
||||
|
||||
let callCount = 0;
|
||||
function cb(x) {
|
||||
callCount++;
|
||||
assertEquals(arguments.length, 1);
|
||||
assertEquals(this, globalThis);
|
||||
assertEquals(x, 1337);
|
||||
return 42;
|
||||
}
|
||||
assertEquals(mc.makeCallback(resource, globalThis, cb, 1337), 42);
|
||||
assertEquals(callCount, 1);
|
||||
});
|
||||
|
||||
Deno.test("napi makeCallback3", function () {
|
||||
const resource = {};
|
||||
|
||||
let callCount = 0;
|
||||
|
||||
function multiArgFunc(arg1, arg2, arg3) {
|
||||
callCount++;
|
||||
assertEquals(arg1, 1);
|
||||
assertEquals(arg2, 2);
|
||||
assertEquals(arg3, 3);
|
||||
return 42;
|
||||
}
|
||||
assertEquals(
|
||||
mc.makeCallback(resource, globalThis, multiArgFunc, 1, 2, 3),
|
||||
42,
|
||||
);
|
||||
assertEquals(callCount, 1);
|
||||
});
|
Loading…
Add table
Add a link
Reference in a new issue