redeclaration.js 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138
  1. //-------------------------------------------------------------------------------------------------------
  2. // Copyright (C) Microsoft. All rights reserved.
  3. // Licensed under the MIT license. See LICENSE.txt file in the project root for full license information.
  4. //-------------------------------------------------------------------------------------------------------
  5. try {
  6. eval("const x = 1;const x = 1;");
  7. } catch (e) {
  8. WScript.Echo("Test 1:");
  9. WScript.Echo(e);
  10. }
  11. try {
  12. eval("const x = 1;let x = 1;");
  13. } catch (e) {
  14. WScript.Echo("Test 2:");
  15. WScript.Echo(e);
  16. }
  17. try {
  18. eval("let x = 1;const x = 1;");
  19. } catch (e) {
  20. WScript.Echo("Test 3:");
  21. WScript.Echo(e);
  22. }
  23. try {
  24. eval("var x = 1;const x = 1;");
  25. } catch (e) {
  26. WScript.Echo("Test 4:");
  27. WScript.Echo(e);
  28. }
  29. try {
  30. eval("const x = 1;var x = 1;");
  31. } catch (e) {
  32. WScript.Echo("Test 5:");
  33. WScript.Echo(e);
  34. }
  35. try {
  36. eval("var x = 1;let x = 1;");
  37. } catch (e) {
  38. WScript.Echo("Test 6:");
  39. WScript.Echo(e);
  40. }
  41. try {
  42. eval("const x = 1;const x = 1;");
  43. } catch (e) {
  44. WScript.Echo("Test 7:");
  45. WScript.Echo(e);
  46. }
  47. try {
  48. eval("var x = 1;const x = 1;const x = 1;");
  49. } catch (e) {
  50. WScript.Echo("Test 8:");
  51. WScript.Echo(e);
  52. }
  53. try {
  54. eval("const x = 1;const x = 1;var x = 1;");
  55. } catch (e) {
  56. WScript.Echo("Test 9:");
  57. WScript.Echo(e);
  58. }
  59. //------------
  60. try {
  61. eval("(function f(){ const x = 1;const x = 1; })()");
  62. } catch (e) {
  63. WScript.Echo("Test a1:");
  64. WScript.Echo(e);
  65. }
  66. try {
  67. eval("(function f(){ const x = 1;let x = 1; })()");
  68. } catch (e) {
  69. WScript.Echo("Test a2:");
  70. WScript.Echo(e);
  71. }
  72. try {
  73. eval("(function f(){ let x = 1;const x = 1; })()");
  74. } catch (e) {
  75. WScript.Echo("Test a3:");
  76. WScript.Echo(e);
  77. }
  78. try {
  79. eval("(function f(){ var x = 1;const x = 1; })()");
  80. } catch (e) {
  81. WScript.Echo("Test a4:");
  82. WScript.Echo(e);
  83. }
  84. try {
  85. eval("(function f(){ const x = 1;var x = 1; })()");
  86. } catch (e) {
  87. WScript.Echo("Test a5:");
  88. WScript.Echo(e);
  89. }
  90. try {
  91. eval("(function f(){ var x = 1;let x = 1; })()");
  92. } catch (e) {
  93. WScript.Echo("Test a6:");
  94. WScript.Echo(e);
  95. }
  96. try {
  97. eval("(function f(){ const x = 1;const x = 1; })()");
  98. } catch (e) {
  99. WScript.Echo("Test a7:");
  100. WScript.Echo(e);
  101. }
  102. try {
  103. eval("(function f(){ var x = 1;const x = 1;const x = 1; })()");
  104. } catch (e) {
  105. WScript.Echo("Test a8:");
  106. WScript.Echo(e);
  107. }
  108. try {
  109. eval("(function f(){ const x = 1;const x = 1;var x = 1; })()");
  110. } catch (e) {
  111. WScript.Echo("Test a9:");
  112. WScript.Echo(e);
  113. }
  114. // ---------
  115. try {
  116. eval("function a() { function f(x) { const x = 1; } } a();");
  117. } catch (e) {
  118. WScript.Echo("Test b1:");
  119. WScript.Echo(e);
  120. }
  121. try {
  122. eval("function a() { function f(x) { let x; } } a();");
  123. } catch (e) {
  124. WScript.Echo("Test b2:");
  125. WScript.Echo(e);
  126. }
  127. try {
  128. eval("var x; { function x() {}; } let x;");
  129. }
  130. catch (e) {
  131. WScript.Echo("Test b3:");
  132. WScript.Echo(e);
  133. }