UNPKG

@litecanvas/utils

Version:

Utilities to help build litecanvas games

23 lines (21 loc) 527 B
import assert from "../debug/assert.js" /** * Math modulus (Euclidean division). * * Note: When `b === 0` returns 0, rather than `NaN`. * * @param {number} a dividend * @param {number} b divisor * @returns {number} the remainder */ export default (a, b) => { DEV: assert( Number.isFinite(a), "[litecanvas/utils] mod() 1st param must be a number" ) DEV: assert( Number.isFinite(b) && b >= 0, "[litecanvas/utils] mod() 2nd param must be a non-negative number" ) return ((a % b) + b) % b || 0 }