nodejs/deps/v8/test/mjsunit/regress/regress-6677.js
Michaël Zasso 3d1b3df948 deps: update V8 to 6.2.414.32
PR-URL: https://github.com/nodejs/node/pull/15362
Reviewed-By: Myles Borins <myles.borins@gmail.com>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
2017-10-18 17:01:41 -07:00

28 lines
848 B
JavaScript

// 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.
const x = 0;
assertThrows(() => { with ({}) { x = 1; } }, TypeError);
assertEquals(0, x);
assertThrows(() => { with ({}) { eval("x = 1"); } }, TypeError);
assertEquals(0, x);
// Assignment to name of named function expression inside with-statement
// should not throw (but also not succeed).
assertEquals('function', function f() {
with ({}) { f = 1 }
return typeof f;
}());
// But we should throw an exception if the assignment is itself in strict
// code.
assertEquals('function', function f() {
with ({}) {
assertThrows(function() { "use strict"; f = 1 }, TypeError);
}
return typeof f;
}());