proxyprotobug.js 860 B

1234567891011121314151617181920212223242526272829
  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. var proxyHandler = {
  6. has(p, n) {
  7. WScript.Echo("has " + n);
  8. return !(n === "get" || n === "set");
  9. },
  10. get(p, n) {
  11. WScript.Echo("get " + n);
  12. if (n == "get" || n == "set") {
  13. return () => 1;
  14. } else {
  15. return 1;
  16. }
  17. }
  18. };
  19. var p = new Proxy({}, proxyHandler);
  20. var o = {};
  21. Object.defineProperty(o, "x", p);
  22. WScript.Echo("======================");
  23. var pp = {};
  24. pp.__proto__ = p;
  25. Object.defineProperty(o, "y", pp);