1- // Flags: --experimental-vm-modules --expose-internals --allow-natives-syntax 
1+ // Flags: --experimental-vm-modules --expose-internals --allow-natives-syntax --js-float16array 
2+ // TODO(LiviaMedeiros): once `Float16Array` is unflagged in v8, remove `--js-float16array` above 
23'use strict' ; 
34const  common  =  require ( '../common' ) ; 
45const  assert  =  require ( 'assert' ) ; 
@@ -9,6 +10,9 @@ const { JSStream } = internalBinding('js_stream');
910
1011const  external  =  ( new  JSStream ( ) ) . _externalStream ; 
1112
13+ // TODO(LiviaMedeiros): once linter recognizes `Float16Array`, remove next line 
14+ const  {  Float16Array }  =  globalThis ; 
15+ 
1216for  ( const  [  value ,  _method  ]  of  [ 
1317  [  external ,  'isExternal'  ] , 
1418  [  new  Date ( )  ] , 
@@ -38,6 +42,7 @@ for (const [ value, _method ] of [
3842  [  new  Int8Array ( )  ] , 
3943  [  new  Int16Array ( )  ] , 
4044  [  new  Int32Array ( )  ] , 
45+   [  new  Float16Array ( )  ] , 
4146  [  new  Float32Array ( )  ] , 
4247  [  new  Float64Array ( )  ] , 
4348  [  new  BigInt64Array ( )  ] , 
@@ -102,6 +107,9 @@ for (const [ value, _method ] of [
102107  assert ( ! types . isInt32Array ( {  [ Symbol . toStringTag ] : 'Int32Array'  } ) ) ; 
103108  assert ( types . isInt32Array ( vm . runInNewContext ( 'new Int32Array' ) ) ) ; 
104109
110+   assert ( ! types . isFloat16Array ( {  [ Symbol . toStringTag ] : 'Float16Array'  } ) ) ; 
111+   assert ( types . isFloat16Array ( vm . runInNewContext ( 'new Float16Array' ) ) ) ; 
112+ 
105113  assert ( ! types . isFloat32Array ( {  [ Symbol . toStringTag ] : 'Float32Array'  } ) ) ; 
106114  assert ( types . isFloat32Array ( vm . runInNewContext ( 'new Float32Array' ) ) ) ; 
107115
@@ -127,6 +135,7 @@ for (const [ value, _method ] of [
127135  const  int8Array  =  new  Int8Array ( arrayBuffer ) ; 
128136  const  int16Array  =  new  Int16Array ( arrayBuffer ) ; 
129137  const  int32Array  =  new  Int32Array ( arrayBuffer ) ; 
138+   const  float16Array  =  new  Float16Array ( arrayBuffer ) ; 
130139  const  float32Array  =  new  Float32Array ( arrayBuffer ) ; 
131140  const  float64Array  =  new  Float64Array ( arrayBuffer ) ; 
132141  const  bigInt64Array  =  new  BigInt64Array ( arrayBuffer ) ; 
@@ -141,6 +150,7 @@ for (const [ value, _method ] of [
141150  const  fakeInt8Array  =  {  __proto__ : Int8Array . prototype  } ; 
142151  const  fakeInt16Array  =  {  __proto__ : Int16Array . prototype  } ; 
143152  const  fakeInt32Array  =  {  __proto__ : Int32Array . prototype  } ; 
153+   const  fakeFloat16Array  =  {  __proto__ : Float16Array . prototype  } ; 
144154  const  fakeFloat32Array  =  {  __proto__ : Float32Array . prototype  } ; 
145155  const  fakeFloat64Array  =  {  __proto__ : Float64Array . prototype  } ; 
146156  const  fakeBigInt64Array  =  {  __proto__ : BigInt64Array . prototype  } ; 
@@ -164,6 +174,10 @@ for (const [ value, _method ] of [
164174    Object . setPrototypeOf ( new  Int16Array ( arrayBuffer ) ,  Int16Array . prototype ) ; 
165175  const  stealthyInt32Array  = 
166176    Object . setPrototypeOf ( new  Int32Array ( arrayBuffer ) ,  Int32Array . prototype ) ; 
177+   const  stealthyFloat16Array  = 
178+     Object . setPrototypeOf ( 
179+       new  Float16Array ( arrayBuffer ) ,  Float16Array . prototype 
180+     ) ; 
167181  const  stealthyFloat32Array  = 
168182    Object . setPrototypeOf ( 
169183      new  Float32Array ( arrayBuffer ) ,  Float32Array . prototype 
@@ -191,6 +205,7 @@ for (const [ value, _method ] of [
191205    int8Array ,  fakeInt8Array ,  stealthyInt8Array , 
192206    int16Array ,  fakeInt16Array ,  stealthyInt16Array , 
193207    int32Array ,  fakeInt32Array ,  stealthyInt32Array , 
208+     float16Array ,  fakeFloat16Array ,  stealthyFloat16Array , 
194209    float32Array ,  fakeFloat32Array ,  stealthyFloat32Array , 
195210    float64Array ,  fakeFloat64Array ,  stealthyFloat64Array , 
196211    bigInt64Array ,  fakeBigInt64Array ,  stealthyBigInt64Array , 
@@ -208,6 +223,7 @@ for (const [ value, _method ] of [
208223      int8Array ,  stealthyInt8Array , 
209224      int16Array ,  stealthyInt16Array , 
210225      int32Array ,  stealthyInt32Array , 
226+       float16Array ,  stealthyFloat16Array , 
211227      float32Array ,  stealthyFloat32Array , 
212228      float64Array ,  stealthyFloat64Array , 
213229      bigInt64Array ,  stealthyBigInt64Array , 
@@ -222,6 +238,7 @@ for (const [ value, _method ] of [
222238      int8Array ,  stealthyInt8Array , 
223239      int16Array ,  stealthyInt16Array , 
224240      int32Array ,  stealthyInt32Array , 
241+       float16Array ,  stealthyFloat16Array , 
225242      float32Array ,  stealthyFloat32Array , 
226243      float64Array ,  stealthyFloat64Array , 
227244      bigInt64Array ,  stealthyBigInt64Array , 
@@ -248,6 +265,9 @@ for (const [ value, _method ] of [
248265    isInt32Array : [ 
249266      int32Array ,  stealthyInt32Array , 
250267    ] , 
268+     isFloat16Array : [ 
269+       float16Array ,  stealthyFloat16Array , 
270+     ] , 
251271    isFloat32Array : [ 
252272      float32Array ,  stealthyFloat32Array , 
253273    ] , 
0 commit comments