This regressed when we added a callback argument, because the callback cannot be bound. This commit also modifies the helmet example to use the low-level API for testing purposes. Note that this omits the optional nanoseconds argument. JavaScript does not support overloading and this argument probably cannot be accurately provided anyway in a web environment. Fixes #3002.