05.arguments.js 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  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. function PrintDescriptor(name, propDesc) {
  7. if (propDesc) {
  8. write(name + ":configurable : " + propDesc.configurable);
  9. write(name + ":enumerable : " + propDesc.enumerable);
  10. write(name + ":writable : " + propDesc.writable);
  11. write(name + ":getter : " + propDesc.get);
  12. write(name + ":setter : " + propDesc.set);
  13. write(name + ":value : " + propDesc.value);
  14. } else {
  15. write(name + " :propDesc undefined");
  16. }
  17. }
  18. (function Test1() {
  19. var propDesc;
  20. try {
  21. propDesc = Object.getOwnPropertyDescriptor(arguments, "callee");
  22. PrintDescriptor("arguments.callee", propDesc);
  23. } catch (e) {
  24. write("Exception: " + e.message);
  25. }
  26. try {
  27. propDesc = Object.getOwnPropertyDescriptor(arguments, "caller");
  28. PrintDescriptor("arguments.caller", propDesc);
  29. } catch (e) {
  30. write("Exception: " + e.message);
  31. }
  32. try {
  33. var c = arguments.caller;
  34. } catch (e) {
  35. write("Exception: " + e.message);
  36. }
  37. try {
  38. arguments.caller = 10;
  39. } catch (e) {
  40. write("Exception: " + e.message);
  41. }
  42. try {
  43. var y = arguments.callee;
  44. } catch (e) {
  45. write("Exception: " + e.message);
  46. }
  47. try {
  48. arguments.callee = 20;
  49. } catch (e) {
  50. write("Exception: " + e.message);
  51. }
  52. })();