@splitsoftware/splitio 10.17.3-rc.2 → 10.17.3-rc.3

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.
Files changed (58) hide show
  1. package/es/factory/browser.js +41 -33
  2. package/es/factory/node.js +41 -36
  3. package/es/index.js +16 -1
  4. package/es/platform/EventEmitter.js +300 -326
  5. package/es/platform/browser.js +4 -4
  6. package/es/platform/getEventSource/browser.js +2 -2
  7. package/es/platform/getEventSource/node.js +13 -12
  8. package/es/platform/getFetch/browser.js +2 -2
  9. package/es/platform/getFetch/node.js +13 -13
  10. package/es/platform/node.js +5 -5
  11. package/es/platform/request/options/node.js +6 -21
  12. package/es/settings/browser.js +9 -9
  13. package/es/settings/defaults/browser.js +13 -13
  14. package/es/settings/defaults/node.js +22 -22
  15. package/es/settings/defaults/version.js +1 -1
  16. package/es/settings/integrations/browser.js +3 -3
  17. package/es/settings/node.js +9 -12
  18. package/es/settings/storage/browser.js +31 -59
  19. package/es/settings/storage/node.js +62 -91
  20. package/es/umd.js +3 -3
  21. package/lib/factory/browser.js +61 -70
  22. package/lib/factory/node.js +59 -69
  23. package/lib/index.js +16 -4
  24. package/lib/platform/EventEmitter.js +303 -330
  25. package/lib/platform/browser.js +10 -18
  26. package/lib/platform/getEventSource/browser.js +5 -6
  27. package/lib/platform/getEventSource/node.js +18 -19
  28. package/lib/platform/getFetch/browser.js +7 -10
  29. package/lib/platform/getFetch/node.js +17 -18
  30. package/lib/platform/node.js +13 -23
  31. package/lib/platform/request/options/node.js +12 -31
  32. package/lib/settings/browser.js +18 -26
  33. package/lib/settings/defaults/browser.js +15 -19
  34. package/lib/settings/defaults/node.js +24 -28
  35. package/lib/settings/defaults/version.js +2 -4
  36. package/lib/settings/integrations/browser.js +7 -12
  37. package/lib/settings/node.js +17 -29
  38. package/lib/settings/storage/browser.js +36 -68
  39. package/lib/settings/storage/node.js +66 -97
  40. package/lib/umd.js +3 -8
  41. package/package.json +23 -28
  42. package/src/factory/browser.js +10 -1
  43. package/src/factory/node.js +10 -1
  44. package/src/index.js +16 -0
  45. package/src/platform/request/options/node.js +0 -15
  46. package/src/settings/.DS_Store +0 -0
  47. package/src/settings/browser.js +2 -0
  48. package/src/settings/defaults/version.js +1 -1
  49. package/src/settings/integrations/browser.js +2 -2
  50. package/src/settings/node.js +2 -3
  51. package/src/settings/storage/browser.js +0 -16
  52. package/src/settings/storage/node.js +0 -15
  53. package/es/settings/integrations/node.js +0 -5
  54. package/es/settings/runtime/node.js +0 -35
  55. package/lib/settings/integrations/node.js +0 -12
  56. package/lib/settings/runtime/node.js +0 -45
  57. package/src/settings/integrations/node.js +0 -5
  58. package/src/settings/runtime/node.js +0 -37
@@ -22,391 +22,365 @@
22
22
  // exported as an ES module instead of CommonJS, to avoid extra configuration steps when using
23
23
  // the ESM build of the SDK with tools that doesn't support CommonJS by default (e.g. Rollup).
24
24
  var R = typeof Reflect === 'object' ? Reflect : null;
25
- var ReflectApply = R && typeof R.apply === 'function' ? R.apply : function ReflectApply(target, receiver, args) {
26
- return Function.prototype.apply.call(target, receiver, args);
27
- };
25
+ var ReflectApply = R && typeof R.apply === 'function'
26
+ ? R.apply
27
+ : function ReflectApply(target, receiver, args) {
28
+ return Function.prototype.apply.call(target, receiver, args);
29
+ };
28
30
  var ReflectOwnKeys;
29
-
30
31
  if (R && typeof R.ownKeys === 'function') {
31
- ReflectOwnKeys = R.ownKeys;
32
- } else if (Object.getOwnPropertySymbols) {
33
- ReflectOwnKeys = function ReflectOwnKeys(target) {
34
- return Object.getOwnPropertyNames(target).concat(Object.getOwnPropertySymbols(target));
35
- };
36
- } else {
37
- ReflectOwnKeys = function ReflectOwnKeys(target) {
38
- return Object.getOwnPropertyNames(target);
39
- };
32
+ ReflectOwnKeys = R.ownKeys;
33
+ }
34
+ else if (Object.getOwnPropertySymbols) {
35
+ ReflectOwnKeys = function ReflectOwnKeys(target) {
36
+ return Object.getOwnPropertyNames(target)
37
+ .concat(Object.getOwnPropertySymbols(target));
38
+ };
39
+ }
40
+ else {
41
+ ReflectOwnKeys = function ReflectOwnKeys(target) {
42
+ return Object.getOwnPropertyNames(target);
43
+ };
40
44
  }
41
-
42
45
  function ProcessEmitWarning(warning) {
43
- if (console && console.warn) console.warn(warning);
46
+ if (console && console.warn)
47
+ console.warn(warning);
44
48
  }
45
-
46
49
  var NumberIsNaN = Number.isNaN || function NumberIsNaN(value) {
47
- return value !== value;
50
+ return value !== value;
48
51
  };
49
-
50
52
  export function EventEmitter() {
51
- EventEmitter.init.call(this);
53
+ EventEmitter.init.call(this);
52
54
  }
53
55
  EventEmitter.prototype._events = undefined;
54
56
  EventEmitter.prototype._eventsCount = 0;
55
- EventEmitter.prototype._maxListeners = undefined; // By default EventEmitters will print a warning if more than 10 listeners are
57
+ EventEmitter.prototype._maxListeners = undefined;
58
+ // By default EventEmitters will print a warning if more than 10 listeners are
56
59
  // added to it. This is a useful default which helps finding memory leaks.
57
-
58
60
  var defaultMaxListeners = 10;
59
-
60
61
  function checkListener(listener) {
61
- if (typeof listener !== 'function') {
62
- throw new TypeError('The "listener" argument must be of type Function. Received type ' + typeof listener);
63
- }
62
+ if (typeof listener !== 'function') {
63
+ throw new TypeError('The "listener" argument must be of type Function. Received type ' + typeof listener);
64
+ }
64
65
  }
65
-
66
66
  Object.defineProperty(EventEmitter, 'defaultMaxListeners', {
67
- enumerable: true,
68
- get: function get() {
69
- return defaultMaxListeners;
70
- },
71
- set: function set(arg) {
72
- if (typeof arg !== 'number' || arg < 0 || NumberIsNaN(arg)) {
73
- throw new RangeError('The value of "defaultMaxListeners" is out of range. It must be a non-negative number. Received ' + arg + '.');
67
+ enumerable: true,
68
+ get: function () {
69
+ return defaultMaxListeners;
70
+ },
71
+ set: function (arg) {
72
+ if (typeof arg !== 'number' || arg < 0 || NumberIsNaN(arg)) {
73
+ throw new RangeError('The value of "defaultMaxListeners" is out of range. It must be a non-negative number. Received ' + arg + '.');
74
+ }
75
+ defaultMaxListeners = arg;
74
76
  }
75
-
76
- defaultMaxListeners = arg;
77
- }
78
77
  });
79
-
80
78
  EventEmitter.init = function () {
81
- if (this._events === undefined || this._events === Object.getPrototypeOf(this)._events) {
82
- this._events = Object.create(null);
83
- this._eventsCount = 0;
84
- }
85
-
86
- this._maxListeners = this._maxListeners || undefined;
87
- }; // Obviously not all Emitters should be limited to 10. This function allows
79
+ if (this._events === undefined ||
80
+ this._events === Object.getPrototypeOf(this)._events) {
81
+ this._events = Object.create(null);
82
+ this._eventsCount = 0;
83
+ }
84
+ this._maxListeners = this._maxListeners || undefined;
85
+ };
86
+ // Obviously not all Emitters should be limited to 10. This function allows
88
87
  // that to be increased. Set to zero for unlimited.
89
-
90
-
91
88
  EventEmitter.prototype.setMaxListeners = function setMaxListeners(n) {
92
- if (typeof n !== 'number' || n < 0 || NumberIsNaN(n)) {
93
- throw new RangeError('The value of "n" is out of range. It must be a non-negative number. Received ' + n + '.');
94
- }
95
-
96
- this._maxListeners = n;
97
- return this;
89
+ if (typeof n !== 'number' || n < 0 || NumberIsNaN(n)) {
90
+ throw new RangeError('The value of "n" is out of range. It must be a non-negative number. Received ' + n + '.');
91
+ }
92
+ this._maxListeners = n;
93
+ return this;
98
94
  };
99
-
100
95
  function _getMaxListeners(that) {
101
- if (that._maxListeners === undefined) return EventEmitter.defaultMaxListeners;
102
- return that._maxListeners;
96
+ if (that._maxListeners === undefined)
97
+ return EventEmitter.defaultMaxListeners;
98
+ return that._maxListeners;
103
99
  }
104
-
105
100
  EventEmitter.prototype.getMaxListeners = function getMaxListeners() {
106
- return _getMaxListeners(this);
101
+ return _getMaxListeners(this);
107
102
  };
108
-
109
103
  EventEmitter.prototype.emit = function emit(type) {
110
- var args = [];
111
-
112
- for (var i = 1; i < arguments.length; i++) {
113
- args.push(arguments[i]);
114
- }
115
-
116
- var doError = type === 'error';
117
- var events = this._events;
118
- if (events !== undefined) doError = doError && events.error === undefined;else if (!doError) return false; // If there is no 'error' event listener then throw.
119
-
120
- if (doError) {
121
- var er;
122
- if (args.length > 0) er = args[0];
123
-
124
- if (er instanceof Error) {
125
- // Note: The comments on the `throw` lines are intentional, they show
126
- // up in Node's output if this results in an unhandled exception.
127
- throw er; // Unhandled 'error' event
128
- } // At least give some kind of context to the user
129
-
130
-
131
- var err = new Error('Unhandled error.' + (er ? ' (' + er.message + ')' : ''));
132
- err.context = er;
133
- throw err; // Unhandled 'error' event
134
- }
135
-
136
- var handler = events[type];
137
- if (handler === undefined) return false;
138
-
139
- if (typeof handler === 'function') {
140
- ReflectApply(handler, this, args);
141
- } else {
142
- var len = handler.length;
143
- var listeners = arrayClone(handler, len); // eslint-disable-next-line no-redeclare
144
-
145
- for (var i = 0; i < len; ++i) {
146
- ReflectApply(listeners[i], this, args);
104
+ var args = [];
105
+ for (var i = 1; i < arguments.length; i++)
106
+ args.push(arguments[i]);
107
+ var doError = (type === 'error');
108
+ var events = this._events;
109
+ if (events !== undefined)
110
+ doError = (doError && events.error === undefined);
111
+ else if (!doError)
112
+ return false;
113
+ // If there is no 'error' event listener then throw.
114
+ if (doError) {
115
+ var er;
116
+ if (args.length > 0)
117
+ er = args[0];
118
+ if (er instanceof Error) {
119
+ // Note: The comments on the `throw` lines are intentional, they show
120
+ // up in Node's output if this results in an unhandled exception.
121
+ throw er; // Unhandled 'error' event
122
+ }
123
+ // At least give some kind of context to the user
124
+ var err = new Error('Unhandled error.' + (er ? ' (' + er.message + ')' : ''));
125
+ err.context = er;
126
+ throw err; // Unhandled 'error' event
147
127
  }
148
- }
149
-
150
- return true;
128
+ var handler = events[type];
129
+ if (handler === undefined)
130
+ return false;
131
+ if (typeof handler === 'function') {
132
+ ReflectApply(handler, this, args);
133
+ }
134
+ else {
135
+ var len = handler.length;
136
+ var listeners = arrayClone(handler, len); // eslint-disable-next-line no-redeclare
137
+ for (var i = 0; i < len; ++i)
138
+ ReflectApply(listeners[i], this, args);
139
+ }
140
+ return true;
151
141
  };
152
-
153
142
  function _addListener(target, type, listener, prepend) {
154
- var m;
155
- var events;
156
- var existing;
157
- checkListener(listener);
158
- events = target._events;
159
-
160
- if (events === undefined) {
161
- events = target._events = Object.create(null);
162
- target._eventsCount = 0;
163
- } else {
164
- // To avoid recursion in the case that type === "newListener"! Before
165
- // adding it to the listeners, first emit "newListener".
166
- if (events.newListener !== undefined) {
167
- target.emit('newListener', type, listener.listener ? listener.listener : listener); // Re-assign `events` because a newListener handler could have caused the
168
- // this._events to be assigned to a new object
169
-
170
- events = target._events;
143
+ var m;
144
+ var events;
145
+ var existing;
146
+ checkListener(listener);
147
+ events = target._events;
148
+ if (events === undefined) {
149
+ events = target._events = Object.create(null);
150
+ target._eventsCount = 0;
151
+ }
152
+ else {
153
+ // To avoid recursion in the case that type === "newListener"! Before
154
+ // adding it to the listeners, first emit "newListener".
155
+ if (events.newListener !== undefined) {
156
+ target.emit('newListener', type, listener.listener ? listener.listener : listener);
157
+ // Re-assign `events` because a newListener handler could have caused the
158
+ // this._events to be assigned to a new object
159
+ events = target._events;
160
+ }
161
+ existing = events[type];
162
+ }
163
+ if (existing === undefined) {
164
+ // Optimize the case of one listener. Don't need the extra array object.
165
+ existing = events[type] = listener;
166
+ ++target._eventsCount;
171
167
  }
172
-
173
- existing = events[type];
174
- }
175
-
176
- if (existing === undefined) {
177
- // Optimize the case of one listener. Don't need the extra array object.
178
- existing = events[type] = listener;
179
- ++target._eventsCount;
180
- } else {
181
- if (typeof existing === 'function') {
182
- // Adding the second element, need to change to array.
183
- existing = events[type] = prepend ? [listener, existing] : [existing, listener]; // If we've already got an array, just append.
184
- } else if (prepend) {
185
- existing.unshift(listener);
186
- } else {
187
- existing.push(listener);
188
- } // Check for listener leak
189
-
190
-
191
- m = _getMaxListeners(target);
192
-
193
- if (m > 0 && existing.length > m && !existing.warned) {
194
- existing.warned = true; // No error code for this since it is a Warning
195
- // eslint-disable-next-line no-restricted-syntax
196
-
197
- var w = new Error('Possible EventEmitter memory leak detected. ' + existing.length + ' ' + String(type) + ' listeners ' + 'added. Use emitter.setMaxListeners() to ' + 'increase limit');
198
- w.name = 'MaxListenersExceededWarning';
199
- w.emitter = target;
200
- w.type = type;
201
- w.count = existing.length;
202
- ProcessEmitWarning(w);
168
+ else {
169
+ if (typeof existing === 'function') {
170
+ // Adding the second element, need to change to array.
171
+ existing = events[type] =
172
+ prepend ? [listener, existing] : [existing, listener];
173
+ // If we've already got an array, just append.
174
+ }
175
+ else if (prepend) {
176
+ existing.unshift(listener);
177
+ }
178
+ else {
179
+ existing.push(listener);
180
+ }
181
+ // Check for listener leak
182
+ m = _getMaxListeners(target);
183
+ if (m > 0 && existing.length > m && !existing.warned) {
184
+ existing.warned = true;
185
+ // No error code for this since it is a Warning
186
+ // eslint-disable-next-line no-restricted-syntax
187
+ var w = new Error('Possible EventEmitter memory leak detected. ' +
188
+ existing.length + ' ' + String(type) + ' listeners ' +
189
+ 'added. Use emitter.setMaxListeners() to ' +
190
+ 'increase limit');
191
+ w.name = 'MaxListenersExceededWarning';
192
+ w.emitter = target;
193
+ w.type = type;
194
+ w.count = existing.length;
195
+ ProcessEmitWarning(w);
196
+ }
203
197
  }
204
- }
205
-
206
- return target;
198
+ return target;
207
199
  }
208
-
209
200
  EventEmitter.prototype.addListener = function addListener(type, listener) {
210
- return _addListener(this, type, listener, false);
201
+ return _addListener(this, type, listener, false);
211
202
  };
212
-
213
203
  EventEmitter.prototype.on = EventEmitter.prototype.addListener;
214
-
215
- EventEmitter.prototype.prependListener = function prependListener(type, listener) {
216
- return _addListener(this, type, listener, true);
217
- };
218
-
204
+ EventEmitter.prototype.prependListener =
205
+ function prependListener(type, listener) {
206
+ return _addListener(this, type, listener, true);
207
+ };
219
208
  function onceWrapper() {
220
- if (!this.fired) {
221
- this.target.removeListener(this.type, this.wrapFn);
222
- this.fired = true;
223
- if (arguments.length === 0) return this.listener.call(this.target);
224
- return this.listener.apply(this.target, arguments);
225
- }
209
+ if (!this.fired) {
210
+ this.target.removeListener(this.type, this.wrapFn);
211
+ this.fired = true;
212
+ if (arguments.length === 0)
213
+ return this.listener.call(this.target);
214
+ return this.listener.apply(this.target, arguments);
215
+ }
226
216
  }
227
-
228
217
  function _onceWrap(target, type, listener) {
229
- var state = {
230
- fired: false,
231
- wrapFn: undefined,
232
- target: target,
233
- type: type,
234
- listener: listener
235
- };
236
- var wrapped = onceWrapper.bind(state);
237
- wrapped.listener = listener;
238
- state.wrapFn = wrapped;
239
- return wrapped;
218
+ var state = { fired: false, wrapFn: undefined, target: target, type: type, listener: listener };
219
+ var wrapped = onceWrapper.bind(state);
220
+ wrapped.listener = listener;
221
+ state.wrapFn = wrapped;
222
+ return wrapped;
240
223
  }
241
-
242
224
  EventEmitter.prototype.once = function once(type, listener) {
243
- checkListener(listener);
244
- this.on(type, _onceWrap(this, type, listener));
245
- return this;
246
- };
247
-
248
- EventEmitter.prototype.prependOnceListener = function prependOnceListener(type, listener) {
249
- checkListener(listener);
250
- this.prependListener(type, _onceWrap(this, type, listener));
251
- return this;
252
- }; // Emits a 'removeListener' event if and only if the listener was removed.
253
-
254
-
255
- EventEmitter.prototype.removeListener = function removeListener(type, listener) {
256
- var list, events, position, i, originalListener;
257
- checkListener(listener);
258
- events = this._events;
259
- if (events === undefined) return this;
260
- list = events[type];
261
- if (list === undefined) return this;
262
-
263
- if (list === listener || list.listener === listener) {
264
- if (--this._eventsCount === 0) this._events = Object.create(null);else {
265
- delete events[type];
266
- if (events.removeListener) this.emit('removeListener', type, list.listener || listener);
267
- }
268
- } else if (typeof list !== 'function') {
269
- position = -1;
270
-
271
- for (i = list.length - 1; i >= 0; i--) {
272
- if (list[i] === listener || list[i].listener === listener) {
273
- originalListener = list[i].listener;
274
- position = i;
275
- break;
276
- }
277
- }
278
-
279
- if (position < 0) return this;
280
- if (position === 0) list.shift();else {
281
- spliceOne(list, position);
282
- }
283
- if (list.length === 1) events[type] = list[0];
284
- if (events.removeListener !== undefined) this.emit('removeListener', type, originalListener || listener);
285
- }
286
-
287
- return this;
288
- };
289
-
290
- EventEmitter.prototype.off = EventEmitter.prototype.removeListener;
291
-
292
- EventEmitter.prototype.removeAllListeners = function removeAllListeners(type) {
293
- var listeners, events, i;
294
- events = this._events;
295
- if (events === undefined) return this; // not listening for removeListener, no need to emit
296
-
297
- if (events.removeListener === undefined) {
298
- if (arguments.length === 0) {
299
- this._events = Object.create(null);
300
- this._eventsCount = 0;
301
- } else if (events[type] !== undefined) {
302
- if (--this._eventsCount === 0) this._events = Object.create(null);else delete events[type];
303
- }
304
-
305
- return this;
306
- } // emit removeListener for all listeners on all events
307
-
308
-
309
- if (arguments.length === 0) {
310
- var keys = Object.keys(events);
311
- var key;
312
-
313
- for (i = 0; i < keys.length; ++i) {
314
- key = keys[i];
315
- if (key === 'removeListener') continue;
316
- this.removeAllListeners(key);
317
- }
318
-
319
- this.removeAllListeners('removeListener');
320
- this._events = Object.create(null);
321
- this._eventsCount = 0;
225
+ checkListener(listener);
226
+ this.on(type, _onceWrap(this, type, listener));
322
227
  return this;
323
- }
324
-
325
- listeners = events[type];
326
-
327
- if (typeof listeners === 'function') {
328
- this.removeListener(type, listeners);
329
- } else if (listeners !== undefined) {
330
- // LIFO order
331
- for (i = listeners.length - 1; i >= 0; i--) {
332
- this.removeListener(type, listeners[i]);
333
- }
334
- }
335
-
336
- return this;
337
228
  };
338
-
229
+ EventEmitter.prototype.prependOnceListener =
230
+ function prependOnceListener(type, listener) {
231
+ checkListener(listener);
232
+ this.prependListener(type, _onceWrap(this, type, listener));
233
+ return this;
234
+ };
235
+ // Emits a 'removeListener' event if and only if the listener was removed.
236
+ EventEmitter.prototype.removeListener =
237
+ function removeListener(type, listener) {
238
+ var list, events, position, i, originalListener;
239
+ checkListener(listener);
240
+ events = this._events;
241
+ if (events === undefined)
242
+ return this;
243
+ list = events[type];
244
+ if (list === undefined)
245
+ return this;
246
+ if (list === listener || list.listener === listener) {
247
+ if (--this._eventsCount === 0)
248
+ this._events = Object.create(null);
249
+ else {
250
+ delete events[type];
251
+ if (events.removeListener)
252
+ this.emit('removeListener', type, list.listener || listener);
253
+ }
254
+ }
255
+ else if (typeof list !== 'function') {
256
+ position = -1;
257
+ for (i = list.length - 1; i >= 0; i--) {
258
+ if (list[i] === listener || list[i].listener === listener) {
259
+ originalListener = list[i].listener;
260
+ position = i;
261
+ break;
262
+ }
263
+ }
264
+ if (position < 0)
265
+ return this;
266
+ if (position === 0)
267
+ list.shift();
268
+ else {
269
+ spliceOne(list, position);
270
+ }
271
+ if (list.length === 1)
272
+ events[type] = list[0];
273
+ if (events.removeListener !== undefined)
274
+ this.emit('removeListener', type, originalListener || listener);
275
+ }
276
+ return this;
277
+ };
278
+ EventEmitter.prototype.off = EventEmitter.prototype.removeListener;
279
+ EventEmitter.prototype.removeAllListeners =
280
+ function removeAllListeners(type) {
281
+ var listeners, events, i;
282
+ events = this._events;
283
+ if (events === undefined)
284
+ return this;
285
+ // not listening for removeListener, no need to emit
286
+ if (events.removeListener === undefined) {
287
+ if (arguments.length === 0) {
288
+ this._events = Object.create(null);
289
+ this._eventsCount = 0;
290
+ }
291
+ else if (events[type] !== undefined) {
292
+ if (--this._eventsCount === 0)
293
+ this._events = Object.create(null);
294
+ else
295
+ delete events[type];
296
+ }
297
+ return this;
298
+ }
299
+ // emit removeListener for all listeners on all events
300
+ if (arguments.length === 0) {
301
+ var keys = Object.keys(events);
302
+ var key;
303
+ for (i = 0; i < keys.length; ++i) {
304
+ key = keys[i];
305
+ if (key === 'removeListener')
306
+ continue;
307
+ this.removeAllListeners(key);
308
+ }
309
+ this.removeAllListeners('removeListener');
310
+ this._events = Object.create(null);
311
+ this._eventsCount = 0;
312
+ return this;
313
+ }
314
+ listeners = events[type];
315
+ if (typeof listeners === 'function') {
316
+ this.removeListener(type, listeners);
317
+ }
318
+ else if (listeners !== undefined) {
319
+ // LIFO order
320
+ for (i = listeners.length - 1; i >= 0; i--) {
321
+ this.removeListener(type, listeners[i]);
322
+ }
323
+ }
324
+ return this;
325
+ };
339
326
  function _listeners(target, type, unwrap) {
340
- var events = target._events;
341
- if (events === undefined) return [];
342
- var evlistener = events[type];
343
- if (evlistener === undefined) return [];
344
- if (typeof evlistener === 'function') return unwrap ? [evlistener.listener || evlistener] : [evlistener];
345
- return unwrap ? unwrapListeners(evlistener) : arrayClone(evlistener, evlistener.length);
327
+ var events = target._events;
328
+ if (events === undefined)
329
+ return [];
330
+ var evlistener = events[type];
331
+ if (evlistener === undefined)
332
+ return [];
333
+ if (typeof evlistener === 'function')
334
+ return unwrap ? [evlistener.listener || evlistener] : [evlistener];
335
+ return unwrap ?
336
+ unwrapListeners(evlistener) : arrayClone(evlistener, evlistener.length);
346
337
  }
347
-
348
338
  EventEmitter.prototype.listeners = function listeners(type) {
349
- return _listeners(this, type, true);
339
+ return _listeners(this, type, true);
350
340
  };
351
-
352
341
  EventEmitter.prototype.rawListeners = function rawListeners(type) {
353
- return _listeners(this, type, false);
342
+ return _listeners(this, type, false);
354
343
  };
355
-
356
344
  EventEmitter.listenerCount = function (emitter, type) {
357
- if (typeof emitter.listenerCount === 'function') {
358
- return emitter.listenerCount(type);
359
- } else {
360
- return listenerCount.call(emitter, type);
361
- }
345
+ if (typeof emitter.listenerCount === 'function') {
346
+ return emitter.listenerCount(type);
347
+ }
348
+ else {
349
+ return listenerCount.call(emitter, type);
350
+ }
362
351
  };
363
-
364
352
  EventEmitter.prototype.listenerCount = listenerCount;
365
-
366
353
  function listenerCount(type) {
367
- var events = this._events;
368
-
369
- if (events !== undefined) {
370
- var evlistener = events[type];
371
-
372
- if (typeof evlistener === 'function') {
373
- return 1;
374
- } else if (evlistener !== undefined) {
375
- return evlistener.length;
354
+ var events = this._events;
355
+ if (events !== undefined) {
356
+ var evlistener = events[type];
357
+ if (typeof evlistener === 'function') {
358
+ return 1;
359
+ }
360
+ else if (evlistener !== undefined) {
361
+ return evlistener.length;
362
+ }
376
363
  }
377
- }
378
-
379
- return 0;
364
+ return 0;
380
365
  }
381
-
382
366
  EventEmitter.prototype.eventNames = function eventNames() {
383
- return this._eventsCount > 0 ? ReflectOwnKeys(this._events) : [];
367
+ return this._eventsCount > 0 ? ReflectOwnKeys(this._events) : [];
384
368
  };
385
-
386
369
  function arrayClone(arr, n) {
387
- var copy = new Array(n);
388
-
389
- for (var i = 0; i < n; ++i) {
390
- copy[i] = arr[i];
391
- }
392
-
393
- return copy;
370
+ var copy = new Array(n);
371
+ for (var i = 0; i < n; ++i)
372
+ copy[i] = arr[i];
373
+ return copy;
394
374
  }
395
-
396
375
  function spliceOne(list, index) {
397
- for (; index + 1 < list.length; index++) {
398
- list[index] = list[index + 1];
399
- }
400
-
401
- list.pop();
376
+ for (; index + 1 < list.length; index++)
377
+ list[index] = list[index + 1];
378
+ list.pop();
402
379
  }
403
-
404
380
  function unwrapListeners(arr) {
405
- var ret = new Array(arr.length);
406
-
407
- for (var i = 0; i < ret.length; ++i) {
408
- ret[i] = arr[i].listener || arr[i];
409
- }
410
-
411
- return ret;
412
- }
381
+ var ret = new Array(arr.length);
382
+ for (var i = 0; i < ret.length; ++i) {
383
+ ret[i] = arr[i].listener || arr[i];
384
+ }
385
+ return ret;
386
+ }