setTimeout.js (647B)
1 // |reftest| skip-if(!xulRuntime.shell) 2 3 // Timeouts are called in FIFO order 4 let firstCalled = false; 5 setTimeout(() => firstCalled = true, 0); 6 setTimeout(() => assertEq(firstCalled, true), 0); 7 drainJobQueue(); 8 assertEq(firstCalled, true); 9 10 // Timeouts run after microtask queue is fully drained 11 let drainedQueue = false; 12 setTimeout(() => assertEq(drainedQueue, true)); 13 Promise.resolve().then().then(() => drainedQueue = true); 14 drainJobQueue(); 15 assertEq(drainedQueue, true); 16 17 // Cannot use a CCW for the callback 18 let g = newGlobal({newCompartment: true}); 19 assertThrowsInstanceOf(() => g.setTimeout(() => {}), g.Error); 20 21 reportCompare(true, true);