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' ) ;
@@ -38,6 +39,7 @@ for (const [ value, _method ] of [
3839 [ new Int8Array ( ) ] ,
3940 [ new Int16Array ( ) ] ,
4041 [ new Int32Array ( ) ] ,
42+ [ new Float16Array ( ) ] ,
4143 [ new Float32Array ( ) ] ,
4244 [ new Float64Array ( ) ] ,
4345 [ new BigInt64Array ( ) ] ,
@@ -102,6 +104,9 @@ for (const [ value, _method ] of [
102104 assert ( ! types . isInt32Array ( { [ Symbol . toStringTag ] : 'Int32Array' } ) ) ;
103105 assert ( types . isInt32Array ( vm . runInNewContext ( 'new Int32Array' ) ) ) ;
104106
107+ assert ( ! types . isFloat16Array ( { [ Symbol . toStringTag ] : 'Float16Array' } ) ) ;
108+ assert ( types . isFloat16Array ( vm . runInNewContext ( 'new Float16Array' ) ) ) ;
109+
105110 assert ( ! types . isFloat32Array ( { [ Symbol . toStringTag ] : 'Float32Array' } ) ) ;
106111 assert ( types . isFloat32Array ( vm . runInNewContext ( 'new Float32Array' ) ) ) ;
107112
@@ -127,6 +132,7 @@ for (const [ value, _method ] of [
127132 const int8Array = new Int8Array ( arrayBuffer ) ;
128133 const int16Array = new Int16Array ( arrayBuffer ) ;
129134 const int32Array = new Int32Array ( arrayBuffer ) ;
135+ const float16Array = new Float16Array ( arrayBuffer ) ;
130136 const float32Array = new Float32Array ( arrayBuffer ) ;
131137 const float64Array = new Float64Array ( arrayBuffer ) ;
132138 const bigInt64Array = new BigInt64Array ( arrayBuffer ) ;
@@ -141,6 +147,7 @@ for (const [ value, _method ] of [
141147 const fakeInt8Array = { __proto__ : Int8Array . prototype } ;
142148 const fakeInt16Array = { __proto__ : Int16Array . prototype } ;
143149 const fakeInt32Array = { __proto__ : Int32Array . prototype } ;
150+ const fakeFloat16Array = { __proto__ : Float16Array . prototype } ;
144151 const fakeFloat32Array = { __proto__ : Float32Array . prototype } ;
145152 const fakeFloat64Array = { __proto__ : Float64Array . prototype } ;
146153 const fakeBigInt64Array = { __proto__ : BigInt64Array . prototype } ;
@@ -164,6 +171,10 @@ for (const [ value, _method ] of [
164171 Object . setPrototypeOf ( new Int16Array ( arrayBuffer ) , Int16Array . prototype ) ;
165172 const stealthyInt32Array =
166173 Object . setPrototypeOf ( new Int32Array ( arrayBuffer ) , Int32Array . prototype ) ;
174+ const stealthyFloat16Array =
175+ Object . setPrototypeOf (
176+ new Float16Array ( arrayBuffer ) , Float16Array . prototype
177+ ) ;
167178 const stealthyFloat32Array =
168179 Object . setPrototypeOf (
169180 new Float32Array ( arrayBuffer ) , Float32Array . prototype
@@ -191,6 +202,7 @@ for (const [ value, _method ] of [
191202 int8Array , fakeInt8Array , stealthyInt8Array ,
192203 int16Array , fakeInt16Array , stealthyInt16Array ,
193204 int32Array , fakeInt32Array , stealthyInt32Array ,
205+ float16Array , fakeFloat16Array , stealthyFloat16Array ,
194206 float32Array , fakeFloat32Array , stealthyFloat32Array ,
195207 float64Array , fakeFloat64Array , stealthyFloat64Array ,
196208 bigInt64Array , fakeBigInt64Array , stealthyBigInt64Array ,
@@ -208,6 +220,7 @@ for (const [ value, _method ] of [
208220 int8Array , stealthyInt8Array ,
209221 int16Array , stealthyInt16Array ,
210222 int32Array , stealthyInt32Array ,
223+ float16Array , stealthyFloat16Array ,
211224 float32Array , stealthyFloat32Array ,
212225 float64Array , stealthyFloat64Array ,
213226 bigInt64Array , stealthyBigInt64Array ,
@@ -222,6 +235,7 @@ for (const [ value, _method ] of [
222235 int8Array , stealthyInt8Array ,
223236 int16Array , stealthyInt16Array ,
224237 int32Array , stealthyInt32Array ,
238+ float16Array , stealthyFloat16Array ,
225239 float32Array , stealthyFloat32Array ,
226240 float64Array , stealthyFloat64Array ,
227241 bigInt64Array , stealthyBigInt64Array ,
@@ -248,6 +262,9 @@ for (const [ value, _method ] of [
248262 isInt32Array : [
249263 int32Array , stealthyInt32Array ,
250264 ] ,
265+ isFloat16Array : [
266+ float16Array , stealthyFloat16Array ,
267+ ] ,
251268 isFloat32Array : [
252269 float32Array , stealthyFloat32Array ,
253270 ] ,
0 commit comments