|
|
@@ -10,6 +10,12 @@ const EventEmitter = require('events');
|
|
10
|
10
|
const logger = require('jitsi-meet-logger').getLogger(__filename);
|
|
11
|
11
|
const ScriptUtil = require('../util/ScriptUtil');
|
|
12
|
12
|
|
|
|
13
|
+/**
|
|
|
14
|
+ * Stores all active {@link Statistics} instances.
|
|
|
15
|
+ * @type {Set<Statistics>}
|
|
|
16
|
+ */
|
|
|
17
|
+let _instances;
|
|
|
18
|
+
|
|
13
|
19
|
/**
|
|
14
|
20
|
* True if callstats API is loaded
|
|
15
|
21
|
*/
|
|
|
@@ -124,11 +130,20 @@ Statistics.audioLevelsInterval = 200;
|
|
124
|
130
|
Statistics.disableThirdPartyRequests = false;
|
|
125
|
131
|
Statistics.analytics = analytics;
|
|
126
|
132
|
|
|
127
|
|
-/**
|
|
128
|
|
- * Stores all active {@link Statistics} instances.
|
|
129
|
|
- * @type {Set<Statistics>}
|
|
130
|
|
- */
|
|
131
|
|
-Statistics.instances = new Set();
|
|
|
133
|
+Object.defineProperty(Statistics, 'instances', {
|
|
|
134
|
+ /**
|
|
|
135
|
+ * Returns the Set holding all active {@link Statistics} instances. Lazily
|
|
|
136
|
+ * initializes the Set to allow any Set polyfills to be applied.
|
|
|
137
|
+ * @type {Set<Statistics>}
|
|
|
138
|
+ */
|
|
|
139
|
+ get() {
|
|
|
140
|
+ if (!_instances) {
|
|
|
141
|
+ _instances = new Set();
|
|
|
142
|
+ }
|
|
|
143
|
+
|
|
|
144
|
+ return _instances;
|
|
|
145
|
+ }
|
|
|
146
|
+});
|
|
132
|
147
|
|
|
133
|
148
|
Statistics.prototype.startRemoteStats = function(peerconnection) {
|
|
134
|
149
|
this.stopRemoteStats();
|