dino_runtime 0.1.1

A Rust runtime for Deno
Documentation
const { op_sleep_timeout } = Deno.core.ops;


const timeoutMap = new Map();
let nextTimeoutId = 1;

globalThis.setTimeout = function(callback, delay, ...args) {
  const id = nextTimeoutId++;
  const controller = { cancelled: false };
  timeoutMap.set(id, controller);


  (async () => {
    try {
      await op_sleep_timeout(delay);
      

      const record = timeoutMap.get(id);
      if (record && !record.cancelled) {
        callback(...args);
      }
    } finally {
    
      timeoutMap.delete(id);
    }
  })();

  return id;
};

globalThis.clearTimeout = function(id) {
  const record = timeoutMap.get(id);
  if (record) {
    record.cancelled = true;
    timeoutMap.delete(id);
  }
};