12.delete_sm.js 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  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. "use strict";
  6. function write(v) { WScript.Echo(v + ""); }
  7. function exceptToString(ee) {
  8. if (ee instanceof TypeError) return "TypeError";
  9. if (ee instanceof ReferenceError) return "ReferenceError";
  10. if (ee instanceof EvalError) return "EvalError";
  11. if (ee instanceof SyntaxError) return "SyntaxError";
  12. return "Unknown Error";
  13. }
  14. var gVarTest1 = 1;
  15. (function Test1() {
  16. var str = "delete global variable";
  17. try {
  18. eval("var r = delete gVarTest1;");
  19. write("r : " + r);
  20. } catch (e) {
  21. write("Exception: " + str + " " + exceptToString(e));
  22. return;
  23. }
  24. write("Return: " + str);
  25. }) ();
  26. function gHelperFunction2() {}
  27. (function Test2() {
  28. var str = "delete global function";
  29. try {
  30. eval("var r = delete gHelperFunction2;");
  31. write("r : " + r);
  32. } catch (e) {
  33. write("Exception: " + str + " " + exceptToString(e));
  34. return;
  35. }
  36. write("Return: " + str);
  37. }) ();
  38. (function Test3() {
  39. var str = "delete local variable";
  40. var local = 3;
  41. try {
  42. eval("var r = delete local;");
  43. write("r : " + r);
  44. } catch (e) {
  45. write("Exception: " + str + " " + exceptToString(e));
  46. return;
  47. }
  48. write("Return: " + str);
  49. }) ();
  50. (function Test4() {
  51. var str = "delete local function";
  52. var nestedTest4 = function nestedTest4() {} ;
  53. try {
  54. eval("var r = delete nestedTest4;");
  55. write("r : " + r);
  56. } catch (e) {
  57. write("Exception: " + str + " " + exceptToString(e));
  58. return;
  59. }
  60. write("Return: " + str);
  61. }) ();
  62. (function Test5(x) {
  63. var str = "delete parameter";
  64. try {
  65. eval("var r = delete x;");
  66. } catch (e) {
  67. write("Exception: " + str + " " + exceptToString(e));
  68. return;
  69. }
  70. write("Return: " + str);
  71. }) ();