@@ -777,11 +777,13 @@ module Emit =
777
777
| Some c' -> emitConstantFromJson c'
778
778
| None -> Pt.Printl " readonly %s : %s ;" c.Name ( DomTypeToTsType c.Type)
779
779
780
- let addedConstants = getAddedItems ItemKind.Constant Flavor.All
780
+ let addedConstants = getAddedItems ItemKind.Constant Flavor.All |> Array.sortBy ( fun t -> t.Name )
781
781
Array.iter emitConstantFromJson addedConstants
782
782
783
783
if i.Constants.IsSome then
784
- Array.iter emitConstant i.Constants.Value.Constants
784
+ i.Constants.Value.Constants
785
+ |> Array.sortBy ( fun c -> c.Name)
786
+ |> Array.iter emitConstant
785
787
786
788
let matchSingleParamMethodSignature ( m : Browser.Method ) expectedMName expectedMType expectedParamType =
787
789
OptionCheckValue expectedMName m.Name &&
@@ -875,7 +877,7 @@ module Emit =
875
877
Pt.Printl " interface %s {" i.Name
876
878
Pt.PrintWithAddedIndent " (evt: Event): void;"
877
879
Pt.Printl " }"
878
- else
880
+ else
879
881
let m = i.Methods.Value.Methods.[ 0 ]
880
882
let overload = ( GetOverloads ( Function.Method m) false ).[ 0 ]
881
883
let paramsString = ParamsToString overload.ParamCombinations
@@ -902,14 +904,19 @@ module Emit =
902
904
Pt.Printl " }"
903
905
904
906
getAddedItems ItemKind.Callback flavor
907
+ |> Array.sortBy ( fun cb -> cb.Name)
905
908
|> Array.iter emitCallbackFunctionsFromJson
906
909
907
- GetCallbackFuncsByFlavor flavor |> Array.iter emitCallBackFunction
910
+ GetCallbackFuncsByFlavor flavor
911
+ |> Array.sortBy ( fun cb -> cb.Name)
912
+ |> Array.iter emitCallBackFunction
908
913
909
914
let EmitEnums flavor =
910
915
let emitEnum ( e : Browser.Enum ) =
911
916
Pt.Printl " type %s = %s ;" e.Name ( String.Join( " | " , e.Values |> Array.map ( fun value -> " \" " + value + " \" " )))
912
- GetEnumsByFlavor flavor |> Array.iter emitEnum
917
+ GetEnumsByFlavor flavor
918
+ |> Array.sortBy ( fun e -> e.Name)
919
+ |> Array.iter emitEnum
913
920
914
921
let EmitEventHandlerThis flavor ( prefix : string ) ( i : Browser.Interface ) =
915
922
if prefix = " " then " this: " + i.Name + " , "
@@ -977,6 +984,7 @@ module Emit =
977
984
ps.Properties
978
985
|> Array.filter ( ShouldKeep flavor)
979
986
|> Array.filter ( isCovariantEventHandler >> not )
987
+ |> Array.sortBy ( fun ps -> ps.Name)
980
988
|> Array.iter emitProperty
981
989
| None -> ()
982
990
@@ -1055,6 +1063,7 @@ module Emit =
1055
1063
if i.Methods.IsSome then
1056
1064
i.Methods.Value.Methods
1057
1065
|> Array.filter mFilter
1066
+ |> Array.sortBy ( fun m -> m.Name)
1058
1067
|> Array.iter ( emitMethod flavor prefix i)
1059
1068
1060
1069
for addedItem in getAddedItems ItemKind.Method flavor do
@@ -1168,6 +1177,7 @@ module Emit =
1168
1177
let EmitNamedConstructors () =
1169
1178
browser.Interfaces
1170
1179
|> Array.filter ( fun i -> i.NamedConstructor.IsSome)
1180
+ |> Array.sortBy ( fun i -> i.Name)
1171
1181
|> Array.iter
1172
1182
( fun i ->
1173
1183
let nc = i.NamedConstructor.Value
@@ -1299,11 +1309,14 @@ module Emit =
1299
1309
Pt.Print " extends %s " ( String.Join( " , " , extends))
1300
1310
Pt.Print " {"
1301
1311
Pt.IncreaseIndent()
1302
- ownEventHandles |> List.iter emitInterfaceEventMapEntry
1312
+ ownEventHandles
1313
+ |> List.sortBy ( fun e -> e.Name)
1314
+ |> List.iter emitInterfaceEventMapEntry
1303
1315
1304
1316
let addedProps =
1305
1317
getAddedItems ItemKind.Property Flavor.Web
1306
1318
|> Array.filter ( fun m -> m.Interface.IsNone || m.Interface.Value = i.Name + " EventMap" )
1319
+ |> Array.sortBy ( fun m -> m.Name)
1307
1320
1308
1321
Array.iter emitJsonProperty addedProps
1309
1322
@@ -1414,7 +1427,7 @@ module Emit =
1414
1427
if hasNonStaticMember then emitStaticInterfaceWithNonStaticMembers() else emitPureStaticInterface()
1415
1428
1416
1429
let EmitNonCallbackInterfaces flavor =
1417
- for i in GetNonCallbackInterfacesByFlavor flavor do
1430
+ for i in GetNonCallbackInterfacesByFlavor flavor |> Array.sortBy ( fun i -> i.Name ) do
1418
1431
// If the static attribute has a value, it means the type doesn't have a constructor
1419
1432
if i.Static.IsSome then
1420
1433
EmitStaticInterface flavor i
@@ -1445,12 +1458,14 @@ module Emit =
1445
1458
let addedProps =
1446
1459
getAddedItems ItemKind.Property flavor
1447
1460
|> Array.filter ( matchInterface dict.Name)
1461
+ |> Array.sortBy ( fun d -> d.Name)
1448
1462
1449
1463
Pt.IncreaseIndent()
1450
1464
Array.iter emitJsonProperty addedProps
1451
1465
if dict.Members.IsSome then
1452
1466
dict.Members.Value.Members
1453
1467
|> Array.filter ( fun m -> not ( Set.contains m.Name removedPropNames))
1468
+ |> Array.sortBy ( fun m -> m.Name)
1454
1469
|> Array.iter ( fun m ->
1455
1470
match ( getOverriddenItemByName m.Name ItemKind.Property dict.Name) with
1456
1471
| Some om -> emitJsonProperty om
@@ -1465,10 +1480,13 @@ module Emit =
1465
1480
1466
1481
browser.Dictionaries
1467
1482
|> Array.filter ( fun dict -> flavor <> Worker || knownWorkerInterfaces.Contains dict.Name)
1483
+ |> Array.sortBy ( fun d -> d.Name)
1468
1484
|> Array.iter emitDictionary
1469
1485
1470
1486
if flavor = Worker then
1471
- worker.Dictionaries |> Array.iter emitDictionary
1487
+ worker.Dictionaries
1488
+ |> Array.sortBy ( fun d -> d.Name)
1489
+ |> Array.iter emitDictionary
1472
1490
1473
1491
let EmitAddedInterface ( ai : InputJsonType.Root ) =
1474
1492
match ai.Extends with
@@ -1492,8 +1510,12 @@ module Emit =
1492
1510
m.Signatures |> Array.iter ( Pt.PrintWithAddedIndent " %s ;" )
1493
1511
1494
1512
1495
- ai.Properties |> Array.iter emitProperty
1496
- ai.Methods |> Array.iter emitMethod
1513
+ ai.Properties
1514
+ |> Array.sortBy ( fun p -> p.Name)
1515
+ |> Array.iter emitProperty
1516
+ ai.Methods
1517
+ |> Array.sortBy ( fun m -> m.Name)
1518
+ |> Array.iter emitMethod
1497
1519
ai.Indexer |> Array.collect ( fun i -> i.Signatures) |> Array.iter ( Pt.PrintWithAddedIndent " %s ;" )
1498
1520
Pt.Printl " }"
1499
1521
Pt.Printl " "
@@ -1518,13 +1540,16 @@ module Emit =
1518
1540
| Flavor.Worker ->
1519
1541
browser.Typedefs
1520
1542
|> Array.filter ( fun typedef -> knownWorkerInterfaces.Contains typedef.NewType)
1543
+ |> Array.sortBy ( fun i -> i.NewType)
1521
1544
|> Array.iter emitTypeDef
1522
1545
| _ ->
1523
1546
browser.Typedefs
1524
1547
|> Array.filter ( fun typedef -> getRemovedItemByName typedef.NewType ItemKind.TypeDef " " |> Option.isNone)
1548
+ |> Array.sortBy ( fun i -> i.NewType)
1525
1549
|> Array.iter emitTypeDef
1526
1550
1527
1551
InputJson.getAddedItems ItemKind.TypeDef flavor
1552
+ |> Array.sortBy ( fun t -> t.Name)
1528
1553
|> Array.iter emitTypeDefFromJson
1529
1554
1530
1555
let EmitTheWholeThing flavor ( target : TextWriter ) =
@@ -1537,11 +1562,14 @@ module Emit =
1537
1562
Pt.Printl " "
1538
1563
1539
1564
EmitDictionaries flavor
1540
- browser.CallbackInterfaces.Interfaces |> Array.iter ( EmitCallBackInterface flavor)
1565
+ browser.CallbackInterfaces.Interfaces
1566
+ |> Array.sortBy ( fun cb -> cb.Name)
1567
+ |> Array.iter ( EmitCallBackInterface flavor)
1541
1568
EmitNonCallbackInterfaces flavor
1542
1569
1543
1570
// Add missed interface definition from the spec
1544
- InputJson.getAddedItems InputJson.Interface flavor |> Array.iter EmitAddedInterface
1571
+ InputJson.getAddedItems InputJson.Interface flavor
1572
+ |> Array.iter EmitAddedInterface
1545
1573
1546
1574
Pt.Printl " declare type EventListenerOrEventListenerObject = EventListener | EventListenerObject;"
1547
1575
Pt.Printl " "
@@ -1605,7 +1633,9 @@ module Emit =
1605
1633
Pt.Printl " /////////////////////////////"
1606
1634
Pt.Printl " "
1607
1635
1608
- browser.Interfaces |> Array.iter EmitIterator
1636
+ browser.Interfaces
1637
+ |> Array.sortBy ( fun i -> i.Name)
1638
+ |> Array.iter EmitIterator
1609
1639
1610
1640
fprintf target " %s " ( Pt.GetResult())
1611
1641
target.Flush()
0 commit comments