eval-nativenumber.js 1.0 KB

12345678910111213141516171819202122232425262728293031323334
  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 funcstr = "var t = function() { var a = 1073741823; var arr = new Array(); ";
  6. for (var i = 0; i < 2048; i++)
  7. {
  8. funcstr += " arr[0] = a * 2; ";
  9. }
  10. funcstr += "return arr; }";
  11. var keep = new Array();
  12. var scale = 1;
  13. for (var i = 0; i < 20 * scale; i++)
  14. {
  15. eval("var b = " + i + "; " + funcstr);
  16. CollectGarbage();
  17. var ret = t();
  18. if (ret[0] != 2147483646) { WScript.Echo("fail"); throw 0;}
  19. keep.push(ret[0]);
  20. if (i % (5 * scale) == 0)
  21. {
  22. for (var j = 0; j < keep.length; j++)
  23. {
  24. if (keep[j] != 2147483646) { WScript.Echo("fail"); throw 1; }
  25. }
  26. keep.length = 0;
  27. }
  28. }
  29. WScript.Echo("pass");