trycatch_assert.js 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117
  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 shouldBailout = false;
  6. function func0(){
  7. var loopInvariant = shouldBailout ? 12 : 11;
  8. var obj0 = {};
  9. for(var __loopvar3 = loopInvariant - 6;;) {
  10. try {
  11. try {
  12. obj0.randomFunc();
  13. } catch(ex) {
  14. WScript.Echo(ex.message);
  15. }
  16. var __loopvar6 = loopInvariant - 3;
  17. do {
  18. __loopvar6++;
  19. if (__loopvar6 == loopInvariant + 1) break;
  20. if(shouldBailout){
  21. return 'somestring'
  22. }
  23. } while((1))
  24. } catch(ex) {
  25. WScript.Echo(ex.message);
  26. 1 }
  27. if (__loopvar3 == loopInvariant) break;
  28. __loopvar3 += 2;
  29. }
  30. }
  31. function test0(){
  32. var obj0={};
  33. obj0.prop0 *=func0.call(obj0);
  34. };
  35. test0();
  36. test0();
  37. test0();
  38. test0();
  39. test0();
  40. shouldBailout = true;
  41. test0();
  42. function test1(){
  43. var obj0 = {};
  44. var obj1 = {};
  45. var FloatArr0 = [-1,2038362539.1,570586731,4.71064707708417E+18,-276000689.9,-142,65535,369612157.1];
  46. protoObj0 = Object.create(obj0);
  47. protoObj1 = Object.create(obj1);
  48. try {
  49. obj1 = 1;
  50. var id29 = FloatArr0[(18)];
  51. var strvar10 = 1;
  52. strvar10 = strvar10.substring();
  53. obj1 = {};
  54. WScript.Echo(obj1);
  55. } catch(ex) {
  56. WScript.Echo(ex.message);
  57. var __loopvar3 = 16;
  58. while((((protoObj0.length >= obj1.length)||(obj0.prop0 >= protoObj1.prop0)))) {
  59. if (__loopvar3 == 4) break;
  60. __loopvar3 -= 4;
  61. }
  62. }
  63. };
  64. test1();
  65. test1();
  66. test1();
  67. function test2() {
  68. var y = function () {
  69. };
  70. try {
  71. try {
  72. c;
  73. } catch (x) {
  74. y = [z1];
  75. }
  76. } catch (e) {
  77. }
  78. WScript.Echo(y);
  79. }
  80. test2();
  81. test2();
  82. test2();
  83. WScript.Echo("Passed");
  84. var obj00 = {i: 0,
  85. next: function(){
  86. if(this.i != 75)
  87. return this.i++;
  88. throw this.i;
  89. }
  90. };
  91. var obj11 = {prop0: {x:1}};
  92. function test3(obj)
  93. {
  94. var a;
  95. var b = obj11.prop0;
  96. try {
  97. while (true) {
  98. a = obj.next();
  99. }
  100. } catch (e) {
  101. b.x;
  102. }
  103. }
  104. test3(obj00);
  105. obj00.i = 0;
  106. test3(obj00);
  107. WScript.Echo("Passed");