regalloc.js 1.4 KB

123456789101112131415161718192021222324252627282930313233343536
  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. // WinOOB 1150093
  7. // Really spill a helper spilled lifetime if the register borrowed from it gets allocated
  8. // to another lifetime that extends beyond the end of a helper block.
  9. //
  10. (function() {
  11. function func() { return -1; }
  12. var obj1 = new Object();
  13. var e;
  14. e = 7.5;
  15. obj1.a = 6;
  16. obj1.b = 5.5;
  17. obj1.length = 1.5;
  18. obj1.b >>= (obj1.a >> (((obj1.b ) > ((e >>> 1),(obj1.length++ )) ) ? ( 1) : (1 , func(1)) ));
  19. WScript.Echo("Done");
  20. })();
  21. // Win8 631676
  22. // Helper block spills on caller-save registers should be restored at the end of the block
  23. (function() {
  24. var obj1 = {};
  25. var ary = new Array(10);
  26. (function (p0, p1, p2) {
  27. obj1.prop0 *= (obj1.length &= 1);
  28. var obj3 = 1;
  29. var __loopvar3 = 0;
  30. while((((ary[(14)] ? h : 1) * (((ary[(1)] ? 5.92399137987761E+18 : 1.1) * obj3.prop1) * (1 - ((ary[(12)] * ary[(10)]) ? 7.86168737043649E+18 : -1048116397.9))) - (~7.61982799133318E+18))) && __loopvar3 < 3) {
  31. __loopvar3++;
  32. }
  33. })();
  34. })();