> A fix for this would be in 8.1.1.4.5, insert between the current steps 4 and
> 5:
>
> 4.5 If S is true, then
> a. Let stillHasBinding be ObjRec.HasBinding(N).
> b. ReturnIfAbrupt(stillHasBinding).
> c. If stillHasBinding is false, throw a ReferenceError exception.
I think the check should go into 8.1.1.2.5 SetMutableBinding. That way the
similar issue for object
environment records gets also fixed:
```
var scope = {x: 1};
with (scope) {
(function() {
"use strict";
x = (delete scope.x, 2);
})();
}
```
Except for SpiderMonkey, all other engines tested (Edge, Nashorn, JSC, V8)
already throw a
ReferenceError for the above snippet. But that's probably because engines don't
implement the
'correct' Reference type semantics
(https://bugs.ecmascript.org/show_bug.cgi?id=4379).
- André
_______________________________________________
es-discuss mailing list
[email protected]
https://mail.mozilla.org/listinfo/es-discuss