This needs to read:

```js
fn = new Function('locals, jade', fn);
if (options.client) return fn;
return function (locals) { fn(jade); };
```

`eval` is evil, `Function` is slightly less evil.

Although I'm not personally a fan of the `{client: true}` API, we need to keep it for now to support legacy uses, and until we create something better.  What I'd like is separate `client(str, options, cb)` and `clientFile(path, options, cb)` functions which would return CommonJS modules with:

```js
var jade = require('jade/lib/runtime');
module.exports = function (locals) {
  {{COMPILED TEMPLATE}};
}
```

When you enabled `debug` on that one it would also embed the source code of the function for better error messages.  That needs to be a separate pull request though, for now lets just support `options.client`.