constFoldTests.js 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. //-------------------------------------------------------------------------------------------------------
  2. // Copyright (C) Microsoft Corporation and contributors. All rights reserved.
  3. // Licensed under the MIT license. See LICENSE.txt file in the project root for full license information.
  4. //-------------------------------------------------------------------------------------------------------
  5. passed = true;
  6. function check(expected, funName, ...args)
  7. {
  8. let fun = eval(funName);
  9. var result;
  10. try {
  11. result = fun(...args);
  12. } catch (e) {
  13. result = e.message;
  14. }
  15. if(result != expected) {
  16. passed = false;
  17. print(`${funName}(${[...args]}) produced ${result}, expected ${expected}`);
  18. }
  19. }
  20. function AsmModule() {
  21. "use asm";
  22. function f1() {
  23. var i = 0;
  24. var count = 10;
  25. var x = 0;
  26. var e = 5;
  27. var f = 2;
  28. var g = 0;
  29. var k = 0;
  30. while((i|0) < (count|0)) {
  31. g = (e * f)|0;
  32. k = (g + 7)|0;
  33. x = (x + k)|0;
  34. i = (i + 1)|0;
  35. }
  36. return x|0;
  37. }
  38. return f1;
  39. }
  40. var f1 = AsmModule();
  41. check(170, "f1");
  42. if (passed)
  43. {
  44. print("Passed");
  45. }