manyargs.js 902 B

12345678910111213141516171819202122232425262728
  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. let str = `(function module() { "use asm";function foo(`;
  6. // 550 double args exceeds 1 page
  7. const totalArgs = 550
  8. for (let i = 0; i < totalArgs; ++i)
  9. {
  10. str += `arg${i},`;
  11. }
  12. str += `arg${totalArgs}){`;
  13. for (let i = 0; i <= totalArgs; ++i)
  14. {
  15. str += `arg${i}=+arg${i};`;
  16. }
  17. str += "return 10;}function bar(){return foo(";
  18. for (let i = 0; i < totalArgs; ++i)
  19. {
  20. str += "0.0,";
  21. }
  22. str += "1.0)|0;}"
  23. str += "return bar})()()";
  24. const result = eval(str);
  25. print(result == 10 ? "Pass" : `Fail: ${result}`);