Provided that these implementations are correct, you should use the fastest bcrypt available, which most likely means non-JS implementation.
You should assume that an attacker has the most quickest implementation available, and you want to slow the attacker down by increasing the cost of computation as much as you reasonably can.