benchmark for promise implementations