Nothing obvious. It might be possible to make this more compact though. Argument names do not need to be unique in JavaScript, so you could do a bit of cheating.

```js
var boundArguments = Array(boundLength).join("_,")) + (boundLength ? "_" : "");
```

With regard to Content Security Policies, which are on by default for Chrome extensions, all use of the function constructor or eval throws an exception. However, CSP’s are newer than Function.prototype.bind in all cases I know of, so, as long as we only shim `bind` if it does not exist, we should not run afoul of CSP. For testing purposes, we knock out `Function.prototype.bind` and shim it anyway, but, again, not a situation where a CSP would be in effect.

I do not see an issue here, but it might be good to note *why* there is no issue, in a comment, so someone down the line doesn’t reflexively remove this feature on the presumption that it would not compose well. I *did* have to think about it, after all.