mirror of
https://github.com/denoland/deno.git
synced 2024-12-27 01:29:14 -05:00
30e085cd77
<!-- Before submitting a PR, please read https://docs.deno.com/runtime/manual/references/contributing 1. Give the PR a descriptive title. Examples of good title: - fix(std/http): Fix race condition in server - docs(console): Update docstrings - feat(doc): Handle nested reexports Examples of bad title: - fix #7123 - update docs - fix bugs 2. Ensure there is a related issue and it is referenced in the PR text. 3. Ensure there are tests that cover the changes. 4. Ensure `cargo test` passes. 5. Ensure `./tools/format.js` passes without changing files. 6. Ensure `./tools/lint.js` passes. 7. Open as a draft PR if your work is still in progress. The CI won't run all steps, but you can add '[ci]' to a commit message to force it to. 8. If you would like to run the benchmarks on the CI, add the 'ci-bench' label. -->
38 lines
817 B
JavaScript
38 lines
817 B
JavaScript
// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license.
|
|
|
|
import {
|
|
assert,
|
|
assertEquals,
|
|
assertThrows,
|
|
loadTestLibrary,
|
|
} from "./common.js";
|
|
|
|
const object = loadTestLibrary();
|
|
|
|
Deno.test("napi object", function () {
|
|
const r = object.test_object_new(1, "hello");
|
|
assertEquals(typeof r, "object");
|
|
assertEquals(r[0], 1);
|
|
assertEquals(r[1], "hello");
|
|
|
|
const r1 = object.test_object_get(r);
|
|
assert(r === r1);
|
|
|
|
const r2 = object.test_object_attr_property(r);
|
|
assert(r === r2);
|
|
assertThrows(
|
|
() => {
|
|
r2.self = "2";
|
|
},
|
|
Error,
|
|
"Cannot assign to read only property 'self' of object '#<Object>'",
|
|
);
|
|
|
|
assertThrows(
|
|
() => {
|
|
r2.method = () => {};
|
|
},
|
|
Error,
|
|
"Cannot assign to read only property 'method' of object '#<Object>'",
|
|
);
|
|
});
|