PageSourceSearch

https://www.cbnews.fr/libraries/ev-emitter/ev-emitter.js?v=1740068258

js cbnews.fr collected 2026-10-01 10:12:32 UTC 2,704 bytes, 112 lines download raw bytes

vendor: 2,704 bytes, lines 1-112
1/**
2 * EvEmitter v1.1.0
3 * Lil' event emitter
4 * MIT License
5 */
6
7/* jshint unused: true, undef: true, strict: true */
8
9( function( global, factory ) {
10  // universal module definition
11  /* jshint strict: false */ /* globals define, module, window */
12  if ( typeof define == 'function' && define.amd ) {
13    // AMD - RequireJS
14    define( factory );
15  } else if ( typeof module == 'object' && module.exports ) {
16    // CommonJS - Browserify, Webpack
17    module.exports = factory();
18  } else {
19    // Browser globals
20    global.EvEmitter = factory();
21  }
22
23}( typeof window != 'undefined' ? window : this, function() {
24
25"use strict";
26
27function EvEmitter() {}
28
29var proto = EvEmitter.prototype;
30
31proto.on = function( eventName, listener ) {
32  if ( !eventName || !listener ) {
33    return;
34  }
35  // set events hash
36  var events = this._events = this._events || {};
37  // set listeners array
38  var listeners = events[ eventName ] = events[ eventName ] || [];
39  // only add once
40  if ( listeners.indexOf( listener ) == -1 ) {
41    listeners.push( listener );
42  }
43
44  return this;
45};
46
47proto.once = function( eventName, listener ) {
48  if ( !eventName || !listener ) {
49    return;
50  }
51  // add event
52  this.on( eventName, listener );
53  // set once flag
54  // set onceEvents hash
55  var onceEvents = this._onceEvents = this._onceEvents || {};
56  // set onceListeners object
57  var onceListeners = onceEvents[ eventName ] = onceEvents[ eventName ] || {};
58  // set flag
59  onceListeners[ listener ] = true;
60
61  return this;
62};
63
64proto.off = function( eventName, listener ) {
65  var listeners = this._events && this._events[ eventName ];
66  if ( !listeners || !listeners.length ) {
67    return;
68  }
69  var index = listeners.indexOf( listener );
70  if ( index != -1 ) {
71    listeners.splice( index, 1 );
72  }
73
74  return this;
75};
76
77proto.emitEvent = function( eventName, args ) {
78  var listeners = this._events && this._events[ eventName ];
79  if ( !listeners || !listeners.length ) {
80    return;
81  }
82  // copy over to avoid interference if .off() in listener
83  listeners = listeners.slice(0);
84  args = args || [];
85  // once stuff
86  var onceListeners = this._onceEvents && this._onceEvents[ eventName ];
87
88  for ( var i=0; i < listeners.length; i++ ) {
89    var listener = listeners[i]
90    var isOnce = onceListeners && onceListeners[ listener ];
91    if ( isOnce ) {
92      // remove listener
93      // remove before trigger to prevent recursion
94      this.off( eventName, listener );
95      // unset once flag
96      delete onceListeners[ listener ];
97    }
98    // trigger listener
99    listener.apply( this, args );
100  }
101
102  return this;
103};
104
105proto.allOff = function() {
106  delete this._events;
107  delete this._onceEvents;
108};
109
110return EvEmitter;
111
112}));

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.