Files
Kevin Eady 9cbf4c9e43 node-api: support SharedArrayBuffer in napi_create_dataview
PR-URL: https://github.com/nodejs/node/pull/60473
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Chengzhong Wu <legendecas@gmail.com>
Reviewed-By: Anna Henningsen <anna@addaleax.net>
2025-11-13 21:45:17 +00:00

45 lines
1.3 KiB
JavaScript

'use strict';
const common = require('../../common');
const assert = require('assert');
// Testing api calls for arrays
const test_dataview = require(`./build/${common.buildType}/test_dataview`);
// Test for creating dataview with ArrayBuffer
{
const buffer = new ArrayBuffer(128);
const template = Reflect.construct(DataView, [buffer]);
const theDataview = test_dataview.CreateDataViewFromJSDataView(template);
assert.ok(theDataview instanceof DataView,
`Expect ${theDataview} to be a DataView`);
}
// Test for creating dataview with SharedArrayBuffer
{
const buffer = new SharedArrayBuffer(128);
const template = new DataView(buffer);
const theDataview = test_dataview.CreateDataViewFromJSDataView(template);
assert.ok(theDataview instanceof DataView,
`Expect ${theDataview} to be a DataView`);
assert.strictEqual(template.buffer, theDataview.buffer);
}
// Test for creating dataview with ArrayBuffer and invalid range
{
const buffer = new ArrayBuffer(128);
assert.throws(() => {
test_dataview.CreateDataView(buffer, 10, 200);
}, RangeError);
}
// Test for creating dataview with SharedArrayBuffer and invalid range
{
const buffer = new SharedArrayBuffer(128);
assert.throws(() => {
test_dataview.CreateDataView(buffer, 10, 200);
}, RangeError);
}