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:
Bartek Iwańczuk 2023-05-24 15:41:43 +02:00 committed by GitHub
parent 0bb5bbc7a0
commit e56695daa8
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 152 additions and 7 deletions

View 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);
});