ArrayBtreeBadCodeGen.js 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  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. //only flag needed -ForceArrayBTree
  6. function test0()
  7. {
  8. var GiantPrintArray = [];
  9. var arrObj0 = {};
  10. var VarArr0 = Array();
  11. VarArr0[5] = 1;
  12. var i = 0;
  13. do {
  14. i++;
  15. Object.defineProperty(arrObj0, '5', {
  16. get: function () {
  17. GiantPrintArray.push('getter');
  18. WScript.Echo("Inside getter FAILED");
  19. return 5;
  20. },configurable: true
  21. });
  22. VarArr0[10] = 1;
  23. VarArr0.slice();
  24. arrObj0 = Object.prototype;
  25. } while (i < 2);
  26. delete arrObj0['5'];
  27. delete Object.prototype['5'];
  28. }
  29. function test1()
  30. {
  31. var Debug = true;
  32. var ary1 = new Array(10);
  33. Object.defineProperty(Object.prototype, '5', {
  34. get: function () {
  35. if(Debug) WScript.Echo("Inside getter Object 1");
  36. return 3;
  37. }
  38. });
  39. Object.defineProperty(Array.prototype, '5', {
  40. get: function () {
  41. if(Debug) WScript.Echo("Inside getter Array 1");
  42. return 4;
  43. }
  44. });
  45. slAr = ary1.slice();
  46. if(ary1[5] != 4)
  47. {
  48. WScript.Echo("FAIL ary1[5] = ",ary1[5]);
  49. WScript.Echo("src Array: ",ary1);
  50. WScript.Echo("dest Array: ",slAr);
  51. }
  52. }
  53. test0();
  54. test1();