bug515849.js 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  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. //Switches: -maxinterpretcount:1 -sse:3 -force:atom -forceserialized
  6. //Arch: AMD64
  7. var shouldBailout = false;
  8. var repeatCount = 0;
  9. function test0(){
  10. var obj0 = {};
  11. var obj1 = {};
  12. var arrObj0 = {};
  13. repeatCount = 0;
  14. var func0 = function(argMath0,argArr1){
  15. }
  16. var func1 = function(argObj2,argMath3,argArrObj4,argMath5){
  17. }
  18. obj0.method0 = func1;
  19. var i8 = new Int8Array(3);
  20. d = func1.call(obj1 , 1, func0.call(arrObj0 , (shouldBailout ? (Object.defineProperty(this, 'prop1', {get: function() {WScript.Echo(""); return 3; }, configurable: true}), 1) : 1), 1), 1, 1);
  21. // regalloc.ecs Snippet WIN8:748330: crash due to bad register allocation
  22. obj1 = {};
  23. var f = 6.20856440617424E+18;
  24. obj1.prop0 = {prop0: 1, prop1: 1, prop2: 1, prop3: ((f + (1 <= 1)) / (((1 instanceof Object) <= 1) == 0 ? 1 : ((1 instanceof Object) <= 1))), prop4: 1, prop5: 1, prop6: 1, prop7: 1};
  25. for(var v477409 = 0; v477409 < 3; ++v477409) {
  26. }
  27. obj1.method0 = function(){
  28. //Snippets:newobjinlining1.ecs
  29. function v477410(arg1 , arg2 , arg3)
  30. {
  31. this.v477411 = arg1;
  32. this.v477412 = arg2;
  33. this.v477413 = arg3;
  34. this.v477414 = 2;
  35. this.v477413= 2;
  36. }
  37. function v477415()
  38. {
  39. v477410.prototype = {};
  40. var __loopvar2 = 0;
  41. for(var strvar0 in i8 ) {
  42. if(strvar0.indexOf('method') != -1) continue;
  43. if(__loopvar2++ > 3) break;
  44. //Code Snippet: NegativeArgumentBug.ecs (Blue15423)
  45. for (var _i in arguments[obj0.method0.call(obj0 , 1, ((this.prop1 != obj0.prop0)||(arrObj0.prop0 > this.prop1)), 1, 1)]) {
  46. };
  47. obj0.length -=arrObj0.method0(1, 1, 1, 1);
  48. }
  49. var v477416 = new v477410(1,1,1);
  50. GiantPrintArray.push(v477416.v477413);
  51. GiantPrintArray.push(v477416.v477411);
  52. GiantPrintArray.push(v477416.v477412);
  53. GiantPrintArray.push(v477416.v477414);
  54. }
  55. repeatCount++;
  56. if (repeatCount > 200) return 1;
  57. v477415();
  58. v477415();
  59. Object.defineProperty(v477410.prototype,"v477414",{get:function(){return 100},configurable:false });
  60. v477415();
  61. return 1;
  62. }
  63. if(shouldBailout){
  64. obj0.method0 = obj1.method0;
  65. }
  66. obj0.method0(1, 1, 1, 1);
  67. };
  68. try {
  69. // generate profile
  70. test0();
  71. // run JITted code
  72. runningJITtedCode = true;
  73. test0();
  74. // run code with bailouts enabled
  75. shouldBailout = true;
  76. test0();
  77. } catch (e) {
  78. WScript.Echo(e);
  79. }