// Native-target sleep. moonbitlang/async on native drives a real
// timer via libuv-equivalent primitives, so @async.sleep is the
// correct cross-target cooperative wait.
//
// On JS we use a Node.js setTimeout bridged through the ffi.Promise
// layer (see async_utils.mbt). The two paths cannot be unified
// because ffi.Promise lives outside moonbitlang/async's scheduler.
///|
pub async fn sleep_ms(ms : Int) -> Unit {
@async.sleep(ms)
}