Racket-style Higher-Order Contracts in Plain JavaScript