File tree Expand file tree Collapse file tree
tests/js-native-api/test_dataview Expand file tree Collapse file tree Original file line number Diff line number Diff line change 22// Each key corresponds to a NODE_API_EXPERIMENTAL_HAS_* compile-time macro.
33// Other implementors should set unsupported features to false or omit them.
44
5- const [ major , minor ] = process . version . slice ( 1 ) . split ( '.' ) . map ( Number ) ;
5+ const [ major , minor , patch ] = process . version . slice ( 1 ) . split ( "." ) . map ( Number ) ;
66
77globalThis . experimentalFeatures = {
88 // node_api_is_sharedarraybuffer and node_api_create_sharedarraybuffer were
@@ -12,4 +12,11 @@ globalThis.experimentalFeatures = {
1212 createObjectWithProperties : true ,
1313 setPrototype : true ,
1414 postFinalizer : true ,
15+ // napi_create_dataview accepts a SharedArrayBuffer-backed buffer only since
16+ // Node.js v24.13.1 and v25.4.0 (nodejs/node#60473). It was not backported to
17+ // v20.x or v22.x, where such calls fail with "invalid argument".
18+ dataviewSharedArrayBuffer :
19+ major > 25 ||
20+ ( major === 25 && minor >= 4 ) ||
21+ ( major === 24 && ( minor > 13 || ( minor === 13 && patch >= 1 ) ) ) ,
1522} ;
Original file line number Diff line number Diff line change @@ -15,32 +15,10 @@ const test_dataview = loadAddon("test_dataview");
1515 ) ;
1616}
1717
18- // Test for creating dataview with SharedArrayBuffer
19- {
20- const buffer = new SharedArrayBuffer ( 128 ) ;
21- const template = new DataView ( buffer ) ;
22-
23- const theDataview = test_dataview . CreateDataViewFromJSDataView ( template ) ;
24- assert . ok (
25- theDataview instanceof DataView ,
26- `Expect ${ theDataview } to be a DataView` ,
27- ) ;
28-
29- assert . strictEqual ( template . buffer , theDataview . buffer ) ;
30- }
31-
3218// Test for creating dataview with ArrayBuffer and invalid range
3319{
3420 const buffer = new ArrayBuffer ( 128 ) ;
3521 assert . throws ( ( ) => {
3622 test_dataview . CreateDataView ( buffer , 10 , 200 ) ;
3723 } , RangeError ) ;
3824}
39-
40- // Test for creating dataview with SharedArrayBuffer and invalid range
41- {
42- const buffer = new SharedArrayBuffer ( 128 ) ;
43- assert . throws ( ( ) => {
44- test_dataview . CreateDataView ( buffer , 10 , 200 ) ;
45- } , RangeError ) ;
46- }
Original file line number Diff line number Diff line change 1+ "use strict" ;
2+
3+ // napi_create_dataview accepts a SharedArrayBuffer-backed buffer only on newer
4+ // Node.js releases (see implementors/node/features.js).
5+ if ( ! experimentalFeatures . dataviewSharedArrayBuffer ) {
6+ skipTest ( ) ;
7+ }
8+
9+ // Testing api calls for dataview backed by a SharedArrayBuffer
10+ const test_dataview = loadAddon ( "test_dataview" ) ;
11+
12+ // Test for creating dataview with SharedArrayBuffer
13+ {
14+ const buffer = new SharedArrayBuffer ( 128 ) ;
15+ const template = new DataView ( buffer ) ;
16+
17+ const theDataview = test_dataview . CreateDataViewFromJSDataView ( template ) ;
18+ assert . ok (
19+ theDataview instanceof DataView ,
20+ `Expect ${ theDataview } to be a DataView` ,
21+ ) ;
22+
23+ assert . strictEqual ( template . buffer , theDataview . buffer ) ;
24+ }
25+
26+ // Test for creating dataview with SharedArrayBuffer and invalid range
27+ {
28+ const buffer = new SharedArrayBuffer ( 128 ) ;
29+ assert . throws ( ( ) => {
30+ test_dataview . CreateDataView ( buffer , 10 , 200 ) ;
31+ } , RangeError ) ;
32+ }
You can’t perform that action at this time.
0 commit comments