08.ObjectLiteral_sm.js 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  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. (function Test1() {
  15. var str = "Same name property";
  16. try {
  17. var o = { x: 10, x : 20 };
  18. write("o.x : " + o.x);
  19. } catch (e) {
  20. write("Exception: " + str + " " + exceptToString(e));
  21. return;
  22. }
  23. write("Return: " + str);
  24. }) ();
  25. (function Test2() {
  26. var str = "Same name getter";
  27. try {
  28. var o = { get x() {return "first";} , get x() {return "second";}};
  29. write("o.x : " + o.x);
  30. } catch (e) {
  31. write("Exception: " + str + " " + exceptToString(e));
  32. return;
  33. }
  34. write("Return: " + str);
  35. }) ();