forInObjectAddDelete.js 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  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. //
  6. //NOTE: this may break if enumeration order policy is changed in Chakra but that doesn't mean we have a bug in TTD
  7. //
  8. var x = { a: 1, b: 2};
  9. var obj = { a: 1, b: 2, c: 15};
  10. WScript.SetTimeout(testFunction, 50);
  11. /////////////////
  12. function testFunction()
  13. {
  14. telemetryLog("1st enumeration", true);
  15. for(var i in x)
  16. {
  17. if(x[i] == 1)
  18. {
  19. delete x.a;
  20. delete x.b;
  21. x.c = 3;
  22. x.d = 4;
  23. }
  24. else
  25. telemetryLog(`${x[i]}`, true);
  26. }
  27. telemetryLog("2nd enumeration", true);
  28. for (var i in obj) {
  29. if (obj[i] == 1) {
  30. delete obj.a;
  31. delete obj.b;
  32. obj.c = 3;
  33. obj.d = 4;
  34. }
  35. else
  36. telemetryLog(`${obj[i]}`, true);
  37. }
  38. emitTTDLog(ttdLogURI);
  39. }