9
9
integerTypes ,
10
10
baseTypeConversionMap ,
11
11
assertUnique ,
12
+ arrayBufferViewTypes ,
12
13
} from "./helpers.js" ;
13
14
import { collectLegacyNamespaceTypes } from "./legacy-namespace.js" ;
14
15
@@ -135,7 +136,7 @@ function isEventHandler(p: Browser.Property) {
135
136
export interface CompilerBehavior {
136
137
useIteratorObject ?: boolean ;
137
138
allowUnrelatedSetterType ?: boolean ;
138
- genericTypedArrays ?: boolean ;
139
+ useGenericTypedArrays ?: boolean ;
139
140
}
140
141
141
142
export function emitWebIdl (
@@ -390,7 +391,9 @@ export function emitWebIdl(
390
391
391
392
// propagate `any`
392
393
const converted = types . map ( convertDomTypeToTsTypeWorker ) ;
393
- if ( converted . includes ( "any" ) ) return "any" ;
394
+ if ( converted . includes ( "any" ) ) {
395
+ return "any" ;
396
+ }
394
397
395
398
// convert `ArrayBuffer | SharedArrayBuffer` into `ArrayBufferLike` to be pre-ES2017 friendly.
396
399
const arrayBufferIndex = converted . indexOf ( "ArrayBuffer" ) ;
@@ -412,24 +415,9 @@ export function emitWebIdl(
412
415
. map ( convertDomTypeToTsType )
413
416
. join ( ", " ) ;
414
417
415
- if ( ! subtypeString && compilerBehavior . genericTypedArrays ) {
416
- switch ( type ) {
417
- case "ArrayBufferView" :
418
- case "DataView" :
419
- case "Int8Array" :
420
- case "Uint8Array" :
421
- case "Uint8ClampedArray" :
422
- case "Int16Array" :
423
- case "Uint16Array" :
424
- case "Int32Array" :
425
- case "Uint32Array" :
426
- case "Float32Array" :
427
- case "Float64Array" :
428
- case "BigInt64Array" :
429
- case "BigUint64Array" :
430
- case "Float16Array" :
431
- subtypeString = obj . allowShared ? "ArrayBufferLike" : "ArrayBuffer" ;
432
- break ;
418
+ if ( ! subtypeString && compilerBehavior . useGenericTypedArrays ) {
419
+ if ( arrayBufferViewTypes . has ( type ) ) {
420
+ subtypeString = obj . allowShared ? "ArrayBufferLike" : "ArrayBuffer" ;
433
421
}
434
422
}
435
423
0 commit comments