object.js 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  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 x = { foo: 3, bar: null };
  6. var y = x;
  7. y.baz = "new prop";
  8. var z = new Object();
  9. z['foo'] = 3;
  10. z[1] = "bob";
  11. z['2'] = "bob2";
  12. WScript.SetTimeout(testFunction, 50);
  13. /////////////////
  14. function testFunction()
  15. {
  16. telemetryLog(`typeof (x): ${typeof (x)}`, true); //object
  17. telemetryLog(`typeof (z): ${typeof (z)}`, true); //object;
  18. telemetryLog(`x === y: ${x === y}`, true); //true
  19. telemetryLog(`x !== z: ${x !== z}`, true); //true
  20. telemetryLog(`y.foo: ${y.foo}`, true); //3
  21. telemetryLog(`z.foo: ${z.foo}`, true); //3
  22. telemetryLog(`z[1]: ${z[1]}`, true); //bob
  23. telemetryLog(`z[2]: ${z[2]}`, true); //bob2
  24. telemetryLog(`x.foo: ${x.foo}`, true); //3
  25. telemetryLog(`x.bar: ${x.bar}`, true); //null
  26. telemetryLog(`x.baz: ${x.baz}`, true); //new prop"
  27. telemetryLog(`x.notPresent: ${x.notPresent}`, true); //undefined
  28. telemetryLog(`z[0]: ${z[0]}`, true); //undefined
  29. telemetryLog(`z[5]: ${z[5]}`, true); //undefined
  30. ////
  31. z.foo = 0;
  32. y.foo = 10;
  33. y.foo2 = "ten";
  34. y[10] = "foo";
  35. y.bar = 3;
  36. ////
  37. telemetryLog(`post update -- z[0]: ${z[0]}`, true); //undefined
  38. telemetryLog(`post update -- z.foo: ${z.foo}`, true); //0
  39. telemetryLog(`post update -- x.foo: ${x.foo}`, true); //10
  40. telemetryLog(`post update -- x.foo2: ${x.foo2}`, true); //ten
  41. telemetryLog(`post update -- x[0]: ${x[0]}`, true); //undefined
  42. telemetryLog(`post update -- x[10]: ${x[10]}`, true); //foo
  43. telemetryLog(`post update -- y.bar: ${y.bar}`, true); //3
  44. telemetryLog(`post update -- x.bar: ${x.bar}`, true); //3
  45. emitTTDLog(ttdLogURI);
  46. }