google-closure-compiler 20260629.0.0 → 20260714.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -12096,6 +12096,13 @@ google.maps.addressValidation.AddressValidationRequest = function() {};
12096
12096
  */
12097
12097
  google.maps.addressValidation.AddressValidationRequest.prototype.address;
12098
12098
 
12099
+ /**
12100
+ * Identifiers used to attribute calls to specific packages or OSS libraries.
12101
+ * @type {!Iterable<string>|null|undefined}
12102
+ */
12103
+ google.maps.addressValidation.AddressValidationRequest.prototype
12104
+ .internalUsageAttributionIds;
12105
+
12099
12106
  /**
12100
12107
  * If using a PlaceAutocompleteElement, include it here to link the
12101
12108
  * AddressValidation API calls with the autocomplete session token.
@@ -27181,8 +27188,9 @@ google.maps.routes.Route.prototype.createPolylines = function(options) {};
27181
27188
  * Available only in the v=alpha channel: https://goo.gle/js-alpha-channel.
27182
27189
  * Creates a popover for the route based on the data available for the route,
27183
27190
  * configured in a way suitable for annotating a route on a map. Currently
27184
- * uses {@link google.maps.routes.Route.localizedValues} and {@link
27185
- * google.maps.routes.Route.path}, if available.
27191
+ * uses {@link google.maps.routes.Route.localizedValues}, {@link
27192
+ * google.maps.routes.Route.path}, and {@link google.maps.routes.Route.legs}, if
27193
+ * available.
27186
27194
  * @return {!Promise<!google.maps.maps3d.PopoverElement>}
27187
27195
  */
27188
27196
  google.maps.routes.Route.prototype.createPopover = function() {};
@@ -12096,6 +12096,13 @@ google.maps.addressValidation.AddressValidationRequest = function() {};
12096
12096
  */
12097
12097
  google.maps.addressValidation.AddressValidationRequest.prototype.address;
12098
12098
 
12099
+ /**
12100
+ * Identifiers used to attribute calls to specific packages or OSS libraries.
12101
+ * @type {!Iterable<string>|null|undefined}
12102
+ */
12103
+ google.maps.addressValidation.AddressValidationRequest.prototype
12104
+ .internalUsageAttributionIds;
12105
+
12099
12106
  /**
12100
12107
  * If using a PlaceAutocompleteElement, include it here to link the
12101
12108
  * AddressValidation API calls with the autocomplete session token.
@@ -27181,8 +27188,9 @@ google.maps.routes.Route.prototype.createPolylines = function(options) {};
27181
27188
  * Available only in the v=alpha channel: https://goo.gle/js-alpha-channel.
27182
27189
  * Creates a popover for the route based on the data available for the route,
27183
27190
  * configured in a way suitable for annotating a route on a map. Currently
27184
- * uses {@link google.maps.routes.Route.localizedValues} and {@link
27185
- * google.maps.routes.Route.path}, if available.
27191
+ * uses {@link google.maps.routes.Route.localizedValues}, {@link
27192
+ * google.maps.routes.Route.path}, and {@link google.maps.routes.Route.legs}, if
27193
+ * available.
27186
27194
  * @return {!Promise<!google.maps.maps3d.PopoverElement>}
27187
27195
  */
27188
27196
  google.maps.routes.Route.prototype.createPopover = function() {};
@@ -1629,7 +1629,7 @@ Window.prototype.importScripts = function(urls) {};
1629
1629
  *
1630
1630
  * @param {string} encodedData
1631
1631
  * @return {string}
1632
- * @nosideeffects
1632
+ * @throws {DOMException}
1633
1633
  * @see https://html.spec.whatwg.org/multipage/webappapis.html#dom-atob
1634
1634
  */
1635
1635
  function atob(encodedData) {}
@@ -1637,7 +1637,7 @@ function atob(encodedData) {}
1637
1637
  /**
1638
1638
  * @param {string} stringToEncode
1639
1639
  * @return {string}
1640
- * @nosideeffects
1640
+ * @throws {DOMException}
1641
1641
  * @see https://html.spec.whatwg.org/multipage/webappapis.html#dom-btoa
1642
1642
  */
1643
1643
  function btoa(stringToEncode) {}
@@ -3608,6 +3608,7 @@ Highlight.prototype.forEach = function(callbackfn, thisArg) {};
3608
3608
 
3609
3609
  /**
3610
3610
  * @interface
3611
+ * @see https://www.w3.org/TR/css-highlight-api-1/#registration
3611
3612
  */
3612
3613
  function HighlightRegistry () {}
3613
3614
 
@@ -3618,6 +3619,39 @@ function HighlightRegistry () {}
3618
3619
  */
3619
3620
  HighlightRegistry.prototype.forEach = function(callbackfn, thisArg) {};
3620
3621
 
3622
+ /**
3623
+ * @param {string} key
3624
+ * @param {!Highlight} value
3625
+ * @return {!HighlightRegistry}
3626
+ */
3627
+ HighlightRegistry.prototype.set = function(key, value) {};
3628
+
3629
+ /**
3630
+ * @param {string} key
3631
+ * @return {boolean}
3632
+ */
3633
+ HighlightRegistry.prototype.delete = function(key) {};
3634
+
3635
+ /**
3636
+ * @return {void}
3637
+ */
3638
+ HighlightRegistry.prototype.clear = function() {};
3639
+
3640
+ /**
3641
+ * @param {string} key
3642
+ * @return {boolean}
3643
+ */
3644
+ HighlightRegistry.prototype.has = function(key) {};
3645
+
3646
+ /**
3647
+ * @param {string} key
3648
+ * @return {?Highlight}
3649
+ */
3650
+ HighlightRegistry.prototype.get = function(key) {};
3651
+
3652
+ /** @type {number} */
3653
+ HighlightRegistry.prototype.size;
3654
+
3621
3655
 
3622
3656
  /** @type {!HighlightRegistry} */
3623
3657
  CSSInterface.prototype.highlights;
@@ -269,7 +269,7 @@ var IDBTransactionOptions = function() {};
269
269
  IDBTransactionOptions.prototype.durability;
270
270
 
271
271
  /**
272
- * @param {(string|!Array<string>|!DOMStringList)} storeNames The stores to open
272
+ * @param {(string|!Array<string>|!Iterable<string>|!DOMStringList)} storeNames The stores to open
273
273
  * in this transaction.
274
274
  * @param {!IDBTransactionMode=} mode The mode for opening the object stores.
275
275
  * @param {!IDBTransactionOptions=} options Extra options, like durability.
@@ -395,7 +395,7 @@ IDBObjectStore.prototype.openCursor = function(range, direction) {};
395
395
 
396
396
  /**
397
397
  * @param {string} name The name of the index.
398
- * @param {string|!Array<string>} keyPath The path to the index key.
398
+ * @param {string|!Array<string>|!Iterable<string>} keyPath The path to the index key.
399
399
  * @param {!IDBIndexParameters=} opt_paramters Optional parameters
400
400
  * for the created index.
401
401
  * @return {!IDBIndex} The IDBIndex object.
@@ -41,93 +41,19 @@ var MIDIOptions;
41
41
 
42
42
  /**
43
43
  * @interface
44
+ * @extends {ReadonlyMap<string, !MIDIInput>}
44
45
  */
45
46
  var MIDIInputMap = function() {};
46
47
 
47
48
 
48
- /**
49
- * @const {number}
50
- */
51
- MIDIInputMap.prototype.size;
52
-
53
-
54
- /**
55
- * @param {function(string)} iterator
56
- */
57
- MIDIInputMap.prototype.keys = function(iterator) {};
58
-
59
-
60
- /**
61
- * @param {function(!Array.<*>)} iterator
62
- */
63
- MIDIInputMap.prototype.entries = function(iterator) {};
64
-
65
-
66
- /**
67
- * @param {function(!MIDIInput)} iterator
68
- */
69
- MIDIInputMap.prototype.values = function(iterator) {};
70
-
71
-
72
- /**
73
- * @param {string} key
74
- * @return {!MIDIInput}
75
- */
76
- MIDIInputMap.prototype.get = function(key) {};
77
-
78
-
79
- /**
80
- * @param {string} key
81
- * @return {boolean}
82
- */
83
- MIDIInputMap.prototype.has = function(key) {};
84
-
85
-
86
49
 
87
50
  /**
88
51
  * @interface
52
+ * @extends {ReadonlyMap<string, !MIDIOutput>}
89
53
  */
90
54
  var MIDIOutputMap = function() {};
91
55
 
92
56
 
93
- /**
94
- * @const {number}
95
- */
96
- MIDIOutputMap.prototype.size;
97
-
98
-
99
- /**
100
- * @param {function(string)} iterator
101
- */
102
- MIDIOutputMap.prototype.keys = function(iterator) {};
103
-
104
-
105
- /**
106
- * @param {function(!Array.<*>)} iterator
107
- */
108
- MIDIOutputMap.prototype.entries = function(iterator) {};
109
-
110
-
111
- /**
112
- * @param {function(!MIDIOutput)} iterator
113
- */
114
- MIDIOutputMap.prototype.values = function(iterator) {};
115
-
116
-
117
- /**
118
- * @param {string} key
119
- * @return {!MIDIOutput}
120
- */
121
- MIDIOutputMap.prototype.get = function(key) {};
122
-
123
-
124
- /**
125
- * @param {string} key
126
- * @return {boolean}
127
- */
128
- MIDIOutputMap.prototype.has = function(key) {};
129
-
130
-
131
57
 
132
58
  /**
133
59
  * @interface
@@ -27,6 +27,9 @@
27
27
  * @externs
28
28
  */
29
29
 
30
+ /** @typedef {number} */
31
+ var DOMHighResTimeStamp;
32
+
30
33
  /** @constructor */
31
34
  function PerformanceTiming() {}
32
35
  /** @type {number} */ PerformanceTiming.prototype.navigationStart;
@@ -104,7 +107,7 @@ function PerformanceServerTiming() {}
104
107
  * See https://w3c.github.io/navigation-timing/#sec-performance-navigation-types
105
108
  * @typedef {string}
106
109
  */
107
- var NavigationType;
110
+ var NavigationTimingType;
108
111
 
109
112
  /**
110
113
  * https://w3c.github.io/navigation-timing/#sec-PerformanceNavigationTiming
@@ -122,7 +125,7 @@ function PerformanceNavigationTiming() {}
122
125
  /** @type {number} */ PerformanceNavigationTiming.prototype.domComplete;
123
126
  /** @type {number} */ PerformanceNavigationTiming.prototype.loadEventStart;
124
127
  /** @type {number} */ PerformanceNavigationTiming.prototype.loadEventEnd;
125
- /** @type {NavigationType} */ PerformanceNavigationTiming.prototype.type;
128
+ /** @type {NavigationTimingType} */ PerformanceNavigationTiming.prototype.type;
126
129
  /** @type {number} */ PerformanceNavigationTiming.prototype.redirectCount;
127
130
  // https://wicg.github.io/nav-speculation/prerendering.html#performance-navigation-timing-extension
128
131
  /** @type {number} */ PerformanceNavigationTiming.prototype.activationStart;
@@ -133,6 +136,19 @@ function PerformanceNavigationTiming() {}
133
136
  * @extends {PerformanceEntry}
134
137
  */
135
138
  function PerformancePaintTiming() {}
139
+ // from PaintTimingMixin
140
+ /** @type {!DOMHighResTimeStamp} */ PerformancePaintTiming.prototype.paintTime;
141
+ /** @type {!DOMHighResTimeStamp|null} */ PerformancePaintTiming.prototype
142
+ .presentationTime;
143
+
144
+ /**
145
+ * Differing from TS .d.ts definition (which has 0 parameters) to match
146
+ * Object.prototype.toJSON(opt_key) in es5.js.
147
+ * @override
148
+ * @param {*=} opt_key
149
+ * @return {*}
150
+ */
151
+ PerformancePaintTiming.prototype.toJSON = function(opt_key) {};
136
152
 
137
153
  /** @constructor */
138
154
  function PerformanceNavigation() {}
@@ -199,6 +215,10 @@ function LargestContentfulPaint() {}
199
215
  /** @type {string} */ LargestContentfulPaint.prototype.id;
200
216
  /** @type {string} */ LargestContentfulPaint.prototype.url;
201
217
  /** @type {?Element} */ LargestContentfulPaint.prototype.element;
218
+ // from PaintTimingMixin
219
+ /** @type {!DOMHighResTimeStamp} */ LargestContentfulPaint.prototype.paintTime;
220
+ /** @type {!DOMHighResTimeStamp|null} */ LargestContentfulPaint.prototype
221
+ .presentationTime;
202
222
 
203
223
  /**
204
224
  * https://wicg.github.io/event-timing/#sec-performance-event-timing
@@ -210,6 +230,7 @@ function PerformanceEventTiming() {}
210
230
  /** @type {number} */ PerformanceEventTiming.prototype.processingEnd;
211
231
  /** @type {boolean} */ PerformanceEventTiming.prototype.cancelable;
212
232
  /** @type {?Node} */ PerformanceEventTiming.prototype.target;
233
+ /** @type {number} */ PerformanceEventTiming.prototype.interactionId;
213
234
 
214
235
  /**
215
236
  * @record
@@ -232,17 +253,11 @@ function PerformanceMeasureOptions() {}
232
253
 
233
254
  /**
234
255
  * @see https://developer.mozilla.org/docs/Web/API/EventCounts
235
- * @constructor
256
+ * @interface
257
+ * @extends {ReadonlyMap<string, number>}
236
258
  */
237
259
  function EventCounts() {}
238
260
 
239
- /**
240
- * @param {function(number, string, !EventCounts): void} callback
241
- * @param {*} thisArg
242
- * @return {void}
243
- */
244
- EventCounts.prototype.forEach = function(callback, thisArg) {}
245
-
246
261
  /** @constructor */
247
262
  function Performance() {}
248
263
 
@@ -258,6 +273,8 @@ Performance.prototype.navigation;
258
273
  /** @type {number} */
259
274
  Performance.prototype.timeOrigin;
260
275
 
276
+ /** @type {number} */
277
+ Performance.prototype.interactionCount;
261
278
 
262
279
  /**
263
280
  * Clears the buffer used to store the current list of
@@ -139,6 +139,9 @@ PointerEvent.prototype.tiltX;
139
139
  /** @type {number} */
140
140
  PointerEvent.prototype.tiltY;
141
141
 
142
+ /** @type {number} */
143
+ PointerEvent.prototype.persistentDeviceId;
144
+
142
145
  /** @type {string} */
143
146
  PointerEvent.prototype.pointerType;
144
147
 
@@ -3947,12 +3947,19 @@ RTCErrorEvent.prototype.message;
3947
3947
  * @template T
3948
3948
  * @record
3949
3949
  * @struct
3950
+ * @see https://www.w3.org/TR/mediacapture-transform/#track-processor-interface
3950
3951
  */
3951
3952
  function MediaStreamTrackProcessor() {}
3952
3953
 
3953
3954
  /** @const {!ReadableStream<T>} */
3954
3955
  MediaStreamTrackProcessor.prototype.readable;
3955
3956
 
3957
+ /** @const {number} */
3958
+ MediaStreamTrackProcessor.prototype.discardedFrames;
3959
+
3960
+ /** @const {number} */
3961
+ MediaStreamTrackProcessor.prototype.totalFrames;
3962
+
3956
3963
  /**
3957
3964
  * @typedef {{kind: string}}
3958
3965
  * @see https://alvestrand.github.io/mediacapture-transform/chrome-96.html#generator
@@ -505,7 +505,7 @@ Cache.prototype.matchAll = function(opt_request, opt_options) {};
505
505
  Cache.prototype.add = function(request) {};
506
506
 
507
507
  /**
508
- * @param {!Array<!RequestInfo>} requests
508
+ * @param {!Array<!RequestInfo>|!Iterable<!RequestInfo>} requests
509
509
  * @return {!Promise<void>}
510
510
  */
511
511
  Cache.prototype.addAll = function(requests) {};
@@ -146,9 +146,13 @@ Document.prototype.createTouch = function(view, target, identifier, pageX,
146
146
  * @see http://www.w3.org/TR/touch-events/#touchlist-interface
147
147
  * @constructor
148
148
  * @implements {IArrayLike<!Touch>}
149
+ * @implements {Iterable<!Touch>}
149
150
  */
150
151
  function TouchList() {}
151
152
 
153
+ /** @override */
154
+ TouchList.prototype[Symbol.iterator] = function() {};
155
+
152
156
  /**
153
157
  * The number of Touch objects in this TouchList object.
154
158
  * @type {number}
@@ -31,7 +31,7 @@ var VibratePattern;
31
31
 
32
32
 
33
33
  /**
34
- * @param {!VibratePattern} pattern
34
+ * @param {!VibratePattern|!Iterable<number>} pattern
35
35
  * @return {boolean}
36
36
  * @see https://www.w3.org/TR/2016/REC-vibration-20161018/#idl-def-navigator-vibrate(vibratepattern)
37
37
  */
@@ -322,6 +322,15 @@ EncodedVideoChunkInit.prototype.type;
322
322
  function EncodedVideoChunkOutputCallback() {}
323
323
 
324
324
 
325
+ /**
326
+ * @record
327
+ * @struct
328
+ */
329
+ function SvcOutputMetadata() {}
330
+
331
+ /** @type {number|undefined} */
332
+ SvcOutputMetadata.prototype.temporalLayerId;
333
+
325
334
  /**
326
335
  * @record
327
336
  * @struct
@@ -335,6 +344,8 @@ EncodedVideoChunkMetadata.prototype.decoderConfig;
335
344
  /** @type {number|undefined} */
336
345
  EncodedVideoChunkMetadata.prototype.temporalLayerId;
337
346
 
347
+ /** @type {!SvcOutputMetadata|undefined} */
348
+ EncodedVideoChunkMetadata.prototype.svc;
338
349
 
339
350
  /**
340
351
  * @record
@@ -705,6 +716,9 @@ EncodedAudioChunkMetadata.prototype.decoderConfig;
705
716
  */
706
717
  function AudioEncoderConfig() {}
707
718
 
719
+ /** @type {!AacEncoderConfig|undefined} */
720
+ AudioEncoderConfig.prototype.aac;
721
+
708
722
  /**
709
723
  * @type {string}
710
724
  * @see https://www.w3.org/TR/webcodecs/#dom-audioencoderconfig-codec
@@ -738,6 +752,15 @@ AudioEncoderConfig.prototype.bitrateMode;
738
752
  /** @type {!OpusEncoderConfig|undefined} */
739
753
  AudioEncoderConfig.prototype.opus;
740
754
 
755
+ /**
756
+ * @record
757
+ * @struct
758
+ */
759
+ function AacEncoderConfig() {}
760
+
761
+ /** @type {!AacBitstreamFormat|undefined} */
762
+ AacEncoderConfig.prototype.format;
763
+
741
764
  /**
742
765
  * @record
743
766
  * @struct
@@ -1144,6 +1167,12 @@ var PredefinedColorSpace;
1144
1167
  */
1145
1168
  var ColorSpaceConversion;
1146
1169
 
1170
+ /**
1171
+ * @typedef {string}
1172
+ * Valid values are 'aac' and 'adts'.
1173
+ */
1174
+ var AacBitstreamFormat;
1175
+
1147
1176
  /**
1148
1177
  * @typedef {string}
1149
1178
  */
@@ -1447,6 +1476,7 @@ ImageTrack.prototype.selected;
1447
1476
 
1448
1477
  /**
1449
1478
  * @constructor
1479
+ * @implements {Iterable<!ImageTrack>}
1450
1480
  * @see https://www.w3.org/TR/webcodecs/#imagetracklist
1451
1481
  */
1452
1482
  function ImageTrackList() {}
@@ -1474,3 +1504,9 @@ ImageTrackList.prototype.selectedIndex;
1474
1504
  * @see https://www.w3.org/TR/webcodecs/#dom-imagetracklist-selectedtrack
1475
1505
  */
1476
1506
  ImageTrackList.prototype.selectedTrack;
1507
+
1508
+ /**
1509
+ * @override
1510
+ * @return {!IteratorIterable<!ImageTrack>}
1511
+ */
1512
+ ImageTrackList.prototype[Symbol.iterator] = function() {};
@@ -47,6 +47,15 @@ webCrypto.Algorithm;
47
47
  */
48
48
  webCrypto.AlgorithmIdentifier;
49
49
 
50
+
51
+ /**
52
+ * @typedef {string}
53
+ * Valid values: 'decrypt', 'deriveBits', 'deriveKey', 'encrypt', 'sign',
54
+ * 'unwrapKey', 'verify', 'wrapKey'.
55
+ * @see http://www.w3.org/TR/WebCryptoAPI/#dfn-KeyUsage
56
+ */
57
+ webCrypto.KeyUsage;
58
+
50
59
  /**
51
60
  * @typedef {webCrypto.AlgorithmIdentifier}
52
61
  * @see http://www.w3.org/TR/WebCryptoAPI/#dfn-HashAlgorithmIdentifier
@@ -691,9 +700,9 @@ webCrypto.SubtleCrypto.prototype.digest = function(algorithm, data) {};
691
700
  * algorithm Supported values are: SHA-1, SHA-256, SHA-384, and SHA-512.
692
701
  * @param {boolean} extractable If the key can be extracted from the CryptoKey
693
702
  * object at a later stage.
694
- * @param {!Array<string>} keyUsages Indication of new key options i.e.
695
- * encrypt, decrypt, sign, verify, deriveKey, deriveBits, wrapKey,
696
- * unwrapKey.
703
+ * @param {(!Array<string>|!Iterable<!webCrypto.KeyUsage>)} keyUsages Indication
704
+ * of new key options i.e. encrypt, decrypt, sign, verify, deriveKey,
705
+ * deriveBits, wrapKey, unwrapKey.
697
706
  * @return {!Promise<!webCrypto.CryptoKey|!webCrypto.CryptoKeyPair>} returns the
698
707
  * generated key.
699
708
  */
@@ -710,8 +719,8 @@ webCrypto.SubtleCrypto.prototype.generateKey = function(algorithm,
710
719
  * derivation algorithm to use.
711
720
  * @param {boolean} extractable Indicates if the key can be extracted from the
712
721
  * CryptoKey object at a later stage.
713
- * @param {!Array<string>} keyUsages Indicates what can be done with the
714
- * derivated key.
722
+ * @param {(!Array<string>|!Iterable<!webCrypto.KeyUsage>)} keyUsages Indicates
723
+ * what can be done with the derivated key.
715
724
  * @return {!Promise<!webCrypto.CryptoKey|!webCrypto.CryptoKeyPair>} returns the
716
725
  * generated key.
717
726
  */
@@ -741,9 +750,9 @@ webCrypto.SubtleCrypto.prototype.deriveBits = function(algorithm,
741
750
  * AES-KW, HMAC, RSASSA-PKCS1-v1_5, ECDSA, ECDH, DH.
742
751
  * @param {boolean} extractable If the key can be extracted from the CryptoKey
743
752
  * object at a later stage.
744
- * @param {!Array<string>} keyUsages Indication of new key options i.e.
745
- * encrypt, decrypt, sign, verify, deriveKey, deriveBits, wrapKey,
746
- * unwrapKey.
753
+ * @param {(!Array<string>|!Iterable<!webCrypto.KeyUsage>)} keyUsages Indication
754
+ * of new key options i.e. encrypt, decrypt, sign, verify, deriveKey,
755
+ * deriveBits, wrapKey, unwrapKey.
747
756
  * @return {!Promise<!webCrypto.CryptoKey>} returns the generated key.
748
757
  */
749
758
  webCrypto.SubtleCrypto.prototype.importKey = function(format, keyData,
@@ -790,8 +799,8 @@ webCrypto.SubtleCrypto.prototype.wrapKey = function(format,
790
799
  * Represents the algorithm of the wrapped key.
791
800
  * @param {boolean} extractable Indicates if the key can be extracted from the
792
801
  * CryptoKey object at a later stage.
793
- * @param {!Array<string>} keyUsages Indicates what can be done with the
794
- * derivated key.
802
+ * @param {(!Array<string>|!Iterable<!webCrypto.KeyUsage>)} keyUsages Indicates
803
+ * what can be done with the derivated key.
795
804
  * @return {!Promise<!webCrypto.CryptoKey>} returns the unwrapped key.
796
805
  */
797
806
  webCrypto.SubtleCrypto.prototype.unwrapKey = function(format, wrappedKey,
@@ -42,6 +42,7 @@ var WebTransportCloseInfo;
42
42
  * @typedef {{
43
43
  * allowPooling: (boolean|undefined),
44
44
  * congestionControl: (string|undefined),
45
+ * protocols: (!Array<string>|undefined),
45
46
  * requireUnreliable: (boolean|undefined),
46
47
  * serverCertificateHashes: (!Array<!WebTransportHash>|undefined),
47
48
  * }}
@@ -491,6 +491,24 @@ function FormData(form) {}
491
491
  /** @override */
492
492
  FormData.prototype[Symbol.iterator] = function() {};
493
493
 
494
+ /**
495
+ * @return {!IteratorIterable<!Array<string|!FormDataEntryValue>>}
496
+ * @nosideeffects
497
+ */
498
+ FormData.prototype.entries = function() {};
499
+
500
+ /**
501
+ * @return {!IteratorIterable<string>}
502
+ * @nosideeffects
503
+ */
504
+ FormData.prototype.keys = function() {};
505
+
506
+ /**
507
+ * @return {!IteratorIterable<!FormDataEntryValue>}
508
+ * @nosideeffects
509
+ */
510
+ FormData.prototype.values = function() {};
511
+
494
512
  /**
495
513
  * @param {string} name
496
514
  * @param {?Blob|string} value
@@ -158,19 +158,24 @@ FileSystemDirectoryHandle.prototype.removeEntry = function(name, opt_options) {}
158
158
  FileSystemDirectoryHandle.prototype.resolve = function(possibleDescendant) {};
159
159
 
160
160
  /**
161
- * @return {!AsyncIterable<!Array<string|!FileSystemHandle>>}
161
+ * @return {!AsyncIteratorIterable<!Array<string|!FileSystemHandle|!FileSystemDirectoryHandle|!FileSystemFileHandle>>}
162
+ */
163
+ FileSystemDirectoryHandle.prototype[Symbol.asyncIterator] = function() {};
164
+
165
+ /**
166
+ * @return {!AsyncIteratorIterable<!Array<string|!FileSystemHandle|!FileSystemDirectoryHandle|!FileSystemFileHandle>>}
162
167
  * @see https://fs.spec.whatwg.org/#api-filesystemdirectoryhandle-asynciterable
163
168
  */
164
169
  FileSystemDirectoryHandle.prototype.entries = function() {};
165
170
 
166
171
  /**
167
- * @return {!AsyncIterable<!FileSystemHandle>}
172
+ * @return {!AsyncIteratorIterable<!FileSystemHandle|!FileSystemDirectoryHandle|!FileSystemFileHandle>}
168
173
  * @see https://fs.spec.whatwg.org/#api-filesystemdirectoryhandle-asynciterable
169
174
  */
170
175
  FileSystemDirectoryHandle.prototype.values = function() {};
171
176
 
172
177
  /**
173
- * @return {!AsyncIterable<string>}
178
+ * @return {!AsyncIteratorIterable<string>}
174
179
  * @see https://fs.spec.whatwg.org/#api-filesystemdirectoryhandle-asynciterable
175
180
  */
176
181
  FileSystemDirectoryHandle.prototype.keys = function() {};
package/externs/es3.js CHANGED
@@ -173,6 +173,23 @@ Iterable.prototype[Symbol.iterator] = function() {};
173
173
 
174
174
 
175
175
 
176
+ /**
177
+ * TODO(b/142881197): TReturn and TNext are not yet used for anything.
178
+ * https://github.com/google/closure-compiler/issues/3489
179
+ * @record
180
+ * @template T, TReturn, TNext
181
+ * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/The_Iterator_protocol
182
+ */
183
+ function IteratorLike() {}
184
+
185
+ /**
186
+ * @param {?=} opt_value
187
+ * @return {!IIterableResult<T>}
188
+ */
189
+ IteratorLike.prototype.next = function(opt_value) {};
190
+
191
+
192
+
176
193
  /**
177
194
  * TODO(b/142881197): TReturn and TNext are not yet used for anything.
178
195
  * https://github.com/google/closure-compiler/issues/3489
package/externs/es6.js CHANGED
@@ -2453,7 +2453,7 @@ Object.getOwnPropertyDescriptors = function(obj) {};
2453
2453
 
2454
2454
  /**
2455
2455
  * @param {!Iterable<T>} items
2456
- * @param {function(T, number=): string|symbol|number} callbackFn
2456
+ * @param {function(T, number=): (string|symbol|number)} callbackFn
2457
2457
  * @return {!Object<string|symbol|number, !Array<T>>}
2458
2458
  * @template T
2459
2459
  * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/groupBy
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "google-closure-compiler",
3
- "version": "20260629.0.0",
3
+ "version": "20260714.0.0",
4
4
  "description": "Check, compile, optimize and compress Javascript with Closure-Compiler",
5
5
  "type": "module",
6
6
  "repository": {
@@ -41,16 +41,16 @@
41
41
  "homepage": "https://developers.google.com/closure/compiler/",
42
42
  "dependencies": {
43
43
  "chalk": "^2.0.0 || ^3.0.0 || ^4.0.0 || ^5.0.0 <5.6.1 || ^5.6.2 >5.6.1",
44
- "google-closure-compiler-java": "^20260629.0.0",
44
+ "google-closure-compiler-java": "^20260714.0.0",
45
45
  "minimist": "^1.0.0",
46
46
  "vinyl": "^3.0.1",
47
47
  "vinyl-sourcemaps-apply": "^0.2.0"
48
48
  },
49
49
  "optionalDependencies": {
50
- "google-closure-compiler-linux": "^20260629.0.0",
51
- "google-closure-compiler-linux-arm64": "^20260629.0.0",
52
- "google-closure-compiler-macos": "^20260629.0.0",
53
- "google-closure-compiler-windows": "^20260629.0.0"
50
+ "google-closure-compiler-linux": "^20260714.0.0",
51
+ "google-closure-compiler-linux-arm64": "^20260714.0.0",
52
+ "google-closure-compiler-macos": "^20260714.0.0",
53
+ "google-closure-compiler-windows": "^20260714.0.0"
54
54
  },
55
55
  "devDependencies": {
56
56
  "gulp": "^5.0.1",