MIRROR: javascript for ๐Ÿœ's, a tiny runtime with big ambitions
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

update tests

+18 -17
+2
tests/bench_gc.js
··· 107 107 108 108 let initial = Ant.alloc(); 109 109 console.log('Initial state:'); 110 + console.log(' arenaSize:', fmt(initial.arenaSize)); 110 111 console.log(' heapSize:', fmt(initial.heapSize)); 111 112 console.log(' usedBytes:', fmt(initial.usedBytes)); 112 113 console.log(' totalBytes:', fmt(initial.totalBytes)); ··· 121 122 122 123 let final = Ant.alloc(); 123 124 console.log('Final state:'); 125 + console.log(' arenaSize:', fmt(final.arenaSize)); 124 126 console.log(' heapSize:', fmt(final.heapSize)); 125 127 console.log(' usedBytes:', fmt(final.usedBytes)); 126 128 console.log(' totalBytes:', fmt(final.totalBytes));
+12 -13
tests/test_events.cjs
··· 82 82 // Test 7: Object-specific event listeners 83 83 console.log('\nTest 7: Object-specific event listeners'); 84 84 85 - const emitter1 = createEventTarget(); 86 - const emitter2 = createEventTarget(); 85 + const emitter1 = new EventTarget(); 86 + const emitter2 = new EventTarget(); 87 87 88 88 let emitter1Count = 0; 89 89 let emitter2Count = 0; ··· 110 110 111 111 // Test 8: Object events with custom data 112 112 console.log('\nTest 8: Object events with custom data'); 113 - const dataEmitter = createEventTarget(); 113 + const dataEmitter = new EventTarget(); 114 114 115 115 dataEmitter.addEventListener('message', (event) => { 116 116 console.log(' Message received:', event.detail.text); ··· 122 122 123 123 // Test 9: Object event with once option 124 124 console.log('\nTest 9: Object event with once option'); 125 - const onceEmitter = createEventTarget(); 125 + const onceEmitter = new EventTarget(); 126 126 let objOnceCount = 0; 127 127 128 128 onceEmitter.addEventListener('onceEvent', () => { ··· 136 136 137 137 // Test 10: Object removeEventListener 138 138 console.log('\nTest 10: Object removeEventListener'); 139 - const removeEmitter = createEventTarget(); 139 + const removeEmitter = new EventTarget(); 140 140 let objRemoveCount = 0; 141 141 142 142 function objRemovableListener() { ··· 154 154 155 155 // Test 11: Multiple objects don't interfere 156 156 console.log('\nTest 11: Multiple objects event isolation'); 157 - const objA = createEventTarget(); 158 - const objB = createEventTarget(); 157 + const objA = new EventTarget(); 158 + const objB = new EventTarget(); 159 159 160 160 let objACalled = false; 161 161 let objBCalled = false; ··· 177 177 console.log(' After objB dispatch - A:', objACalled, 'B:', objBCalled); 178 178 console.log(' Result:', (objACalled && objBCalled) ? 'PASS' : 'FAIL'); 179 179 180 - // Test 12: getEventListeners with objects 181 - console.log('\nTest 12: getEventListeners for objects'); 182 - const debugObj = createEventTarget(); 183 - debugObj.addEventListener('debugEvent', () => {}); 184 - debugObj.addEventListener('debugEvent', () => {}); 180 + // Test 12: getEventListeners with global events 181 + console.log('\nTest 12: getEventListeners for global events'); 182 + addEventListener('debugEvent', () => {}); 183 + addEventListener('debugEvent', () => {}); 185 184 186 - const listeners = getEventListeners(debugObj); 185 + const listeners = getEventListeners(); 187 186 console.log(' Has debugEvent listeners:', listeners.debugEvent !== undefined); 188 187 console.log(' Number of debugEvent listeners:', listeners.debugEvent?.length || 0); 189 188 console.log(' Result:', listeners.debugEvent?.length === 2 ? 'PASS' : 'FAIL');
+3 -3
tests/test_native_bind.js
··· 4 4 5 5 // Test 1: Bind addEventListener 6 6 console.log('Test 1: Bind addEventListener'); 7 - const target = createEventTarget(); 7 + const target = new EventTarget(); 8 8 const boundAdd = target.addEventListener.bind(target); 9 9 10 10 console.log(' boundAdd type:', typeof boundAdd); ··· 21 21 22 22 // Test 2: Store bound method in object 23 23 console.log('\nTest 2: Store bound methods in object'); 24 - const target2 = createEventTarget(); 24 + const target2 = new EventTarget(); 25 25 const wrapper = {}; 26 26 wrapper.on = target2.addEventListener.bind(target2); 27 27 wrapper.emit = target2.dispatchEvent.bind(target2); ··· 40 40 console.log('\nTest 3: Use bound methods in class'); 41 41 class MyEmitter { 42 42 constructor() { 43 - const target = createEventTarget(); 43 + const target = new EventTarget(); 44 44 this.on = target.addEventListener.bind(target); 45 45 this.emit = target.dispatchEvent.bind(target); 46 46 }
+1 -1
tests/test_native_bind_debug.js
··· 1 1 // Debug native function binding 2 2 3 - const target = createEventTarget(); 3 + const target = new EventTarget(); 4 4 5 5 console.log('target:', target); 6 6 console.log('typeof target:', typeof target);