blob: ce3a5764c6dd1134b5c35cbcb64f61f10f13eb8c [file] [log] [blame]
//-------------------------------------------------------------------------------------------------------
// Copyright (C) Microsoft. All rights reserved.
// Licensed under the MIT license. See LICENSE.txt file in the project root for full license information.
//-------------------------------------------------------------------------------------------------------
const a = 1;
with({a:2}) {
a++;
print(a); // 3
}
try {
with({b:2}) {
a++;
print(a);
}
}
catch(e) {
print(e); // TypeError: Assignment to const
}
let foo1 = new Function(
"with({a:2}) {" +
" a++;" +
" print(a);" +
"}");
foo1(); // 3
let foo2 = new Function(
"with({b:2}) {" +
" a++;" +
" print(a);" +
"}");
try {
foo2();
}
catch(e) {
print(e); // TypeError: Assignment to const
}
try {
eval('let b = 3');
a++;
print(a);
}
catch(e) {
print(e); // TypeError: Assignment to const
}
(function() {
const a = 1;
with({a:2}) {
a++;
print(a); // 3
}
try {
with({b:2}) {
a++;
print(a);
}
}
catch(e) {
print(e); // TypeError: Assignment to const
}
try {
eval('let b = 3');
a++;
print(a);
}
catch(e) {
print(e); // TypeError: Assignment to const
}
})();
function print(x) { WScript.Echo(x) }