    [PrimaryGlobal]
    interface Window {
    };

    partial interface Window {
      unsigned long requestIdleCallback(IdleRequestCallback callback,
                                        optional IdleRequestOptions options);
      void          cancelIdleCallback(unsigned long handle);
    };

    dictionary IdleRequestOptions {
      unsigned long timeout;
    };

    callback IdleRequestCallback = void (IdleDeadline deadline);