The only issue I can see here is that the error isn't quite right, the names `eval` and `arguments` are prohibited for the same reason they are prohibited in strict mode. Looking at the spec, it seems that Allen just extended the implicit strict mode static semantics of _ClassBody_ all the way out to _ClassDeclaration_ and _ClassExpression_.


```js
function eval() {} // no error
```

```js
"use strict";
function eval() {} // syntax error
```

```js
class eval {} // syntax error
```

```js
"use strict";
class eval {} // syntax error
```

I'm not really sure what the error message should be; since the _ClassDeclaration_ and _ClassExpression_ aren't necessarily in strict mode themselves—even though their _ClassBody_ is. 

cc @allenwb

Allen, do you have any thoughts on the language that should be used to describe these kinds of syntax errors?