ES5ArrayIndexList.js 1.1 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. // Regress Win8 854057
  7. //
  8. function test(num)
  9. {
  10. var arr = new Array(num);
  11. // Generate ES5ArrayTypeHandler index map in order
  12. for(var i = 0; i < num; ++i)
  13. {
  14. Object.defineProperty(arr, i, {
  15. value: i,
  16. enumerable: true,
  17. writable: false,
  18. configurable: true
  19. });
  20. }
  21. // Enumerator triggers generating index list
  22. var i = 0;
  23. for (var p in arr) {
  24. var value = arr[p];
  25. if (i++ > 5) {
  26. break;
  27. }
  28. }
  29. }
  30. function oos() {
  31. try {
  32. oos();
  33. } catch(e) {
  34. // We just got OOS, now we have limited stack
  35. test(1000000);
  36. }
  37. }
  38. oos();
  39. // Good if we haven't hit hard OOS
  40. WScript.Echo("pass");