| // Copyright 2017 the V8 project authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file. |
| // Assignment to const variable inside with-statement should fail. |
| assertThrows(() => { with ({}) { x = 1; } }, TypeError); |
| assertThrows(() => { with ({}) { eval("x = 1"); } }, TypeError); |
| // Assignment to name of named function expression inside with-statement |
| // should not throw (but also not succeed). |
| assertEquals('function', function f() { |
| // But we should throw an exception if the assignment is itself in strict |
| assertEquals('function', function f() { |
| assertThrows(function() { "use strict"; f = 1 }, TypeError); |