forInArrayAdd.js 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135
  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(args)
  6. {
  7. if (typeof (WScript) == "undefined")
  8. print(args);
  9. else
  10. WScript.Echo(args);
  11. }
  12. var a = [11,22,33,44];
  13. a.x = "a.x";
  14. a.y = "a.y";
  15. a.z = "a.z";
  16. write("Scenario:1 - Adding new array indexes while enumerating expandos")
  17. for( var i in a)
  18. {
  19. if(i == "y")
  20. {
  21. a[5] = 55;
  22. a[6] = 66;
  23. }
  24. write("Index:" + i + " Value:" + a[i]);
  25. }
  26. write("Scenario:2 - Adding new array expandos while enumerating array for second time")
  27. for( var i in a)
  28. {
  29. if(i == "z")
  30. {
  31. a[7] = 77;
  32. a[9] = 99;
  33. }
  34. if(i == "7")
  35. {
  36. a.xx = "a.xx";
  37. a.yy = "a.yy";
  38. }
  39. write("Index:" + i + " Value:" + a[i]);
  40. }
  41. write("Scenario:3 - Adding new array expandos while enumerating Object for second time")
  42. var b = [11,22,33,44];
  43. b.x = "b.x";
  44. b.y = "b.y";
  45. b.z = "b.z";
  46. for( var i in b)
  47. {
  48. if(i == "x")
  49. {
  50. b[5] = 55;
  51. b[7] = 77;
  52. }
  53. if(i == "7")
  54. {
  55. b.xx = "b.xx";
  56. b.yy = "b.yy";
  57. }
  58. if(i == "xx")
  59. {
  60. b[9] = 99;
  61. b[10] = 1010;
  62. }
  63. if(i == "9")
  64. {
  65. b.zz = "b.zz";
  66. }
  67. write("Index:" + i + " Value:" + b[i]);
  68. }
  69. write("Scenario:3 - Adding new array expandos while enumerating Object for second time")
  70. var b = [11,22,33,44];
  71. b.x = "b.x";
  72. b.y = "b.y";
  73. b.z = "b.z";
  74. for( var i in b)
  75. {
  76. if(i == "x")
  77. {
  78. b[5] = 55;
  79. b[7] = 77;
  80. }
  81. if(i == "7")
  82. {
  83. b.xx = "b.xx";
  84. b.yy = "b.yy";
  85. }
  86. if(i == "xx")
  87. {
  88. b[9] = 99;
  89. b[10] = 1010;
  90. }
  91. if(i == "9")
  92. {
  93. b.zz = "b.zz";
  94. }
  95. write("Index:" + i + " Value:" + b[i]);
  96. }
  97. write("Scenario:4 - random additions");
  98. var d = [1];
  99. var counter = 0;
  100. for (var i in d)
  101. {
  102. if(counter == 25)
  103. {
  104. break;
  105. }
  106. if(counter%2 == 1)
  107. {
  108. d[counter*counter] = counter*counter;
  109. }
  110. else
  111. {
  112. d["x"+counter] = "d.x"+counter;
  113. }
  114. write("Index:" + i + " Value:" + d[i]);
  115. counter++;
  116. }