| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152 |
- //-------------------------------------------------------------------------------------------------------
- // Copyright (C) Microsoft. All rights reserved.
- // Licensed under the MIT license. See LICENSE.txt file in the project root for full license information.
- //-------------------------------------------------------------------------------------------------------
- // let and const variables should exhibit redeclaration and assignment to const errors
- // even when they are located in an ActivationObjectEx cached scope.
- // Test them independently
- //
- function f0() {
- let x = 0;
- try {
- eval("var x = 5");
- } catch (e) {
- WScript.Echo("eval('var x = 5') threw '" + e.message + "'");
- }
- try {
- eval("x = 5");
- } catch (e) {
- WScript.Echo("unexpected error thrown: '" + e.message + "'");
- }
- WScript.Echo("x: " + x);
- }
- // Called-in-loop is no longer the heuristic we want to use to enable scope caching.
- // Instead rely on -force:cachedscope and call the test function only once here.
- f0();
- function f1() {
- const y = 1;
- try {
- eval("var y = 5");
- } catch (e) {
- WScript.Echo("eval('var y = 5') threw '" + e.message + "'");
- }
- try {
- eval("y = 5");
- } catch (e) {
- WScript.Echo("eval('y = 5') threw '" + e.message + "'");
- }
- WScript.Echo("y: " + y);
- }
- // Called-in-loop is no longer the heuristic we want to use to enable scope caching.
- // Instead rely on -force:cachedscope and call the test function only once here.
- f1();
|