delete2.js 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  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. function write(v) { WScript.Echo(v + ""); }
  6. var r;
  7. var globalX;
  8. var a = new Array(10);
  9. var o = { x : 1, y : 2 };
  10. // Delete a uninitialized global variable
  11. r = delete globalX;
  12. write("delete uninitialized variable globalX: " + r);
  13. write("globalX : " + globalX);
  14. var explicitVar = 10;
  15. r = delete explicitVar;
  16. write("delete explicitVar : " + r);
  17. write("value explicitVar : " + explicitVar);
  18. implicitVar = 20;
  19. r = delete implicitVar;
  20. write("delete implicitVar : " + r);
  21. try {
  22. write("value implicitVar : " + implicitVar);
  23. } catch (e) {
  24. write("value implicitVar : Exception");
  25. }
  26. eval("var explicitVarInEval = 30;")
  27. r = delete explicitVarInEval;
  28. write("delete explicitVarInEval : " + r);
  29. try {
  30. write("value explicitVarInEval : " + explicitVarInEval);
  31. } catch (e) {
  32. write("value explicitVarInEval : Exception");
  33. }
  34. eval("implicitVarInEval = 40;")
  35. r = delete implicitVarInEval;
  36. write("delete implicitVarInEval : " + r);
  37. try {
  38. write("value implicitVarInEval : " + implicitVarInEval);
  39. } catch (e) {
  40. write("value implicitVarInEval : Exception");
  41. }
  42. Array.prototype[2] = 100;
  43. a[1] = 200;
  44. write("a[1] = " + a[1]);
  45. r = delete a[1];
  46. write("delete a[1] : " + r);
  47. write("a[1] = " + a[1]);
  48. write("a[2] = " + a[2]);
  49. r = delete a[2];
  50. write("delete a[2] : " + r);
  51. write("a[2] = " + a[2]);
  52. write("o.x = " + o.x);
  53. r = delete o.x;
  54. write("delete o.x : " + r);
  55. write("o.x = " + o.x);
  56. r = delete o.x;
  57. write("delete o.x (again): " + r);
  58. write("o.z = " + o.z);
  59. r = delete o.z;
  60. write("delete o.z (non existing property): " + r);
  61. write("o.z = " + o.z);