Racket-style Higher-Order Contracts in plain JavaScript