// META: global=window,dedicatedworker,sharedworker // META: script=ticker.js promise_test(async t => { const getCount = ticker(1000); const importP = import(""); await promise_rejects_js(t, TypeError, importP, 'import() should reject'); assert_less_than(getCount(), 1000); }, "import() should not drain the microtask queue if it fails during specifier resolution"); promise_test(async t => { // Use Date.now() to ensure that the module is not in the module map const specifier = "./empty-module.js?" + Date.now(); await import(specifier); const getCount = ticker(1000); await import(specifier); assert_less_than(getCount(), 1000); }, "import() should not drain the microtask queue when loading an already loaded module"); promise_test(async t => { // Use Date.now() to ensure that the module is not in the module map const specifier = "./empty-module.js?" + Date.now(); const getCount = ticker(1e6); await import(specifier); assert_equals(getCount(), 1e6); }, "import() should drain the microtask queue when fetching a new module");