MIRROR: javascript for 馃悳's, a tiny runtime with big ambitions
1const processEvents = [];
2
3function first() {
4 processEvents.push('first');
5}
6
7function second() {
8 processEvents.push('second');
9}
10
11process.removeAllListeners('codex-process-api');
12process.on('codex-process-api', first);
13process.prependListener('codex-process-api', second);
14
15const listeners = process.listeners('codex-process-api');
16if (!Array.isArray(listeners) || listeners.length !== 2) {
17 console.log('FAIL: process.listeners should return the registered listeners');
18 process.exit(1);
19}
20
21if (listeners[0] !== second || listeners[1] !== first) {
22 console.log('FAIL: process.prependListener should place the listener first');
23 process.exit(1);
24}
25
26const rawListeners = process.rawListeners('codex-process-api');
27if (!Array.isArray(rawListeners) || rawListeners.length !== 2) {
28 console.log('FAIL: process.rawListeners should mirror process.listeners for direct listeners');
29 process.exit(1);
30}
31
32const eventNames = process.eventNames();
33if (!Array.isArray(eventNames) || eventNames.indexOf('codex-process-api') === -1) {
34 console.log('FAIL: process.eventNames should include active events');
35 process.exit(1);
36}
37
38process.emit('codex-process-api');
39
40if (processEvents.join(',') !== 'second,first') {
41 console.log('FAIL: process.emit should honor prepended listener order');
42 process.exit(1);
43}
44
45process.removeAllListeners('codex-process-api');
46console.log('PASS');