@@ -357,6 +357,8 @@ public class JavaScriptEnvironment: ComponentBase {
357357 registerObjectGroup ( . jsUint8ArrayConstructor)
358358 registerObjectGroup ( . jsUint8ArrayPrototype)
359359 registerObjectGroup ( . jsDataViews)
360+ registerObjectGroup ( . jsDataViewPrototype)
361+ registerObjectGroup ( . jsDataViewConstructor)
360362
361363 registerObjectGroup ( . jsObjectConstructor)
362364 registerObjectGroup ( . jsPromiseConstructor)
@@ -1084,7 +1086,7 @@ public extension ILType {
10841086 static let jsSharedArrayBuffer = ILType . object ( ofGroup: " SharedArrayBuffer " , withProperties: [ " byteLength " , " maxByteLength " , " growable " ] , withMethods: [ " grow " , " slice " ] )
10851087
10861088 /// Type of a JavaScript DataView object.
1087- static let jsDataView = ILType . object ( ofGroup: " DataView " , withProperties: [ " buffer " , " byteLength " , " byteOffset " ] , withMethods: [ " getInt8 " , " getUint8 " , " getInt16 " , " getUint16 " , " getInt32 " , " getUint32 " , " getFloat16 " , " getFloat32 " , " getFloat64 " , " getBigInt64 " , " setInt8 " , " setUint8 " , " setInt16 " , " setUint16 " , " setInt32 " , " setUint32 " , " setFloat16 " , " setFloat32 " , " setFloat64 " , " setBigInt64 " ] )
1089+ static let jsDataView = ILType . object ( ofGroup: " DataView " , withProperties: [ " buffer " , " byteLength " , " byteOffset " ] , withMethods: [ " getInt8 " , " getUint8 " , " getInt16 " , " getUint16 " , " getInt32 " , " getUint32 " , " getFloat16 " , " getFloat32 " , " getFloat64 " , " getBigInt64 " , " getBigUint64 " , " setInt8 " , " setUint8 " , " setInt16 " , " setUint16 " , " setInt32 " , " setUint32 " , " setFloat16 " , " setFloat32 " , " setFloat64 " , " setBigInt64 " ] )
10881090
10891091 /// Type of a JavaScript TypedArray object of the given variant.
10901092 static func jsTypedArray( _ variant: String ) -> ILType {
@@ -1155,7 +1157,7 @@ public extension ILType {
11551157 + . object( ofGroup: " Uint8ArrayConstructor " , withProperties: [ " prototype " ] , withMethods: [ " fromBase64 " , " fromHex " ] )
11561158
11571159 /// Type of the JavaScript DataView constructor builtin. (TODO Also allow SharedArrayBuffers for first argument)
1158- static let jsDataViewConstructor = ILType . constructor ( [ . plain( . jsArrayBuffer) , . opt( . integer) , . opt( . integer) ] => . jsDataView)
1160+ static let jsDataViewConstructor = ILType . constructor ( [ . plain( . jsArrayBuffer) , . opt( . integer) , . opt( . integer) ] => . jsDataView) + . object ( ofGroup : " DataViewConstructor " , withProperties : [ " prototype " ] )
11591161
11601162 /// Type of the JavaScript Promise constructor builtin.
11611163 static let jsPromiseConstructor = ILType . constructor ( [ . function( ) ] => . jsPromise) + . object( ofGroup: " PromiseConstructor " , withProperties: [ " prototype " ] , withMethods: [ " resolve " , " reject " , " all " , " any " , " race " , " allSettled " , " try " ] )
@@ -1856,27 +1858,41 @@ public extension ObjectGroup {
18561858 " byteOffset " : . integer
18571859 ] ,
18581860 methods: [
1859- " getInt8 " : [ . integer] => . integer,
1860- " getUint8 " : [ . integer] => . integer,
1861- " getInt16 " : [ . integer] => . integer,
1862- " getUint16 " : [ . integer] => . integer,
1863- " getInt32 " : [ . integer] => . integer,
1864- " getUint32 " : [ . integer] => . integer,
1865- " getFloat16 " : [ . integer] => . float,
1866- " getFloat32 " : [ . integer] => . float,
1867- " getFloat64 " : [ . integer] => . float,
1868- " getBigInt64 " : [ . integer] => . bigint,
1869- " setInt8 " : [ . integer, . integer] => . undefined,
1870- " setUint8 " : [ . integer, . integer] => . undefined,
1871- " setInt16 " : [ . integer, . integer] => . undefined,
1872- " setUint16 " : [ . integer, . integer] => . undefined,
1873- " setInt32 " : [ . integer, . integer] => . undefined,
1874- " setUint32 " : [ . integer, . integer] => . undefined,
1875- " setFloat16 " : [ . integer, . float] => . undefined,
1876- " setFloat32 " : [ . integer, . float] => . undefined,
1877- " setFloat64 " : [ . integer, . float] => . undefined,
1878- " setBigInt64 " : [ . integer, . bigint] => . undefined,
1879- ]
1861+ " getInt8 " : [ . integer] => . integer,
1862+ " getUint8 " : [ . integer] => . integer,
1863+ " getInt16 " : [ . integer] => . integer,
1864+ " getUint16 " : [ . integer] => . integer,
1865+ " getInt32 " : [ . integer] => . integer,
1866+ " getUint32 " : [ . integer] => . integer,
1867+ " getFloat16 " : [ . integer] => . float,
1868+ " getFloat32 " : [ . integer] => . float,
1869+ " getFloat64 " : [ . integer] => . float,
1870+ " getBigInt64 " : [ . integer, . opt( . boolean) ] => . bigint,
1871+ " getBigUint64 " : [ . integer, . opt( . boolean) ] => . bigint,
1872+ " setInt8 " : [ . integer, . integer] => . undefined,
1873+ " setUint8 " : [ . integer, . integer] => . undefined,
1874+ " setInt16 " : [ . integer, . integer] => . undefined,
1875+ " setUint16 " : [ . integer, . integer] => . undefined,
1876+ " setInt32 " : [ . integer, . integer] => . undefined,
1877+ " setUint32 " : [ . integer, . integer] => . undefined,
1878+ " setFloat16 " : [ . integer, . float] => . undefined,
1879+ " setFloat32 " : [ . integer, . float] => . undefined,
1880+ " setFloat64 " : [ . integer, . float] => . undefined,
1881+ " setBigInt64 " : [ . integer, . bigint] => . undefined,
1882+ ]
1883+ )
1884+
1885+ static let jsDataViewPrototype = createPrototypeObjectGroup ( jsDataViews,
1886+ constructor: . jsDataViewConstructor)
1887+
1888+ static let jsDataViewConstructor = ObjectGroup (
1889+ name: " DataViewConstructor " ,
1890+ constructorPath: " DataView " ,
1891+ instanceType: . jsDataViewConstructor,
1892+ properties: [
1893+ " prototype " : jsDataViewPrototype. instanceType,
1894+ ] ,
1895+ methods: [ : ]
18801896 )
18811897
18821898 static let jsPromisePrototype =
0 commit comments