equiv-mismatch2.js 19 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342
  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. var shouldBailout = false;
  6. var runningJITtedCode = false;
  7. var reuseObjects = false;
  8. var randomGenerator = function(inputseed) {
  9. var seed = inputseed;
  10. return function() {
  11. // Robert Jenkins' 32 bit integer hash function.
  12. seed = ((seed + 0x7ed55d16) + (seed << 12)) & 0xffffffff;
  13. seed = ((seed ^ 0xc761c23c) ^ (seed >>> 19)) & 0xffffffff;
  14. seed = ((seed + 0x165667b1) + (seed << 5)) & 0xffffffff;
  15. seed = ((seed + 0xd3a2646c) ^ (seed << 9)) & 0xffffffff;
  16. seed = ((seed + 0xfd7046c5) + (seed << 3)) & 0xffffffff;
  17. seed = ((seed ^ 0xb55a4f09) ^ (seed >>> 16)) & 0xffffffff;
  18. return (seed & 0xfffffff) / 0x10000000;
  19. };
  20. };;
  21. var intArrayCreatorCount = 0;
  22. function GenerateArray(seed, arrayType, arraySize, missingValuePercent, typeOfDeclaration) {
  23. Math.random = randomGenerator(seed);
  24. var result, codeToExecute, thisArrayName, maxMissingValues = Math.floor(arraySize * missingValuePercent), noOfMissingValuesAdded = 0;
  25. var contents = [];
  26. var isVarArray = arrayType == 'var';
  27. function IsMissingValue(allowedMissingValues) {
  28. return Math.floor(Math.random() * 100) < allowedMissingValues
  29. }
  30. thisArrayName = 'tempIntArr' + intArrayCreatorCount++;
  31. for (var arrayIndex = 0; arrayIndex < arraySize; arrayIndex++) {
  32. if (isVarArray && arrayIndex != 0) {
  33. arrayType = Math.floor(Math.random() * 100) < 50 ? 'int' : 'float';
  34. }
  35. if(noOfMissingValuesAdded < maxMissingValues && IsMissingValue(missingValuePercent)) {
  36. noOfMissingValuesAdded++;
  37. contents.push('');
  38. } else {
  39. var randomValueGenerated;
  40. if (arrayType == 'int') {
  41. randomValueGenerated = Math.floor(Math.random() * seed);
  42. } else if (arrayType == 'float') {
  43. randomValueGenerated = Math.random() * seed;
  44. } else if (arrayType == 'var') {
  45. randomValueGenerated = '\'' + (Math.random() * seed).toString(36) + '\'';
  46. }
  47. contents.push(randomValueGenerated);
  48. }
  49. }
  50. if(contents.length == 1 && typeOfDeclaration == 'constructor') {
  51. contents.push(Math.floor(Math.random() * seed));
  52. }
  53. if(typeOfDeclaration == 'literal') {
  54. codeToExecute = 'var ' + thisArrayName + ' = [' + contents.join() + '];';
  55. } else {
  56. codeToExecute = 'var ' + thisArrayName + ' = new Array(' + contents.join() + ');';
  57. }
  58. codeToExecute += 'result = ' + thisArrayName + ';';
  59. eval(codeToExecute);
  60. return result;
  61. }
  62. ;
  63. function getRoundValue(n) {
  64. if(n % 1 == 0) // int number
  65. return n % 2147483647;
  66. else // float number
  67. return n.toFixed(8);
  68. return n;
  69. };
  70. var print = WScript.Echo;
  71. WScript.Echo = function(n) { /* suppress output to avoid huge baseline match but preserve the side-effects at call sites */ };
  72. function formatOutput(n) {{
  73. return n.replace(/[-+]?[0-9]*\.?[0-9]+([eE][-+]?[0-9]+)?/g, function(match) {{return getRoundValue(parseFloat(match));}} );
  74. }};
  75. function sumOfArrayElements(prev, curr, index, array) {
  76. return (typeof prev == "number" && typeof curr == "number") ? curr + prev : 0
  77. }
  78. ;
  79. var __counter = 0;
  80. function test0(){
  81. var loopInvariant = shouldBailout ? 0 : 5;
  82. var GiantPrintArray = [];
  83. __counter++;;
  84. function makeArrayLength(x) { if(x < 1 || x > 4294967295 || x != x || isNaN(x) || !isFinite(x)) return 100; else return Math.floor(x) & 0xffff; };;
  85. function leaf() { return 100; };
  86. var obj0 = {};
  87. var protoObj0 = {};
  88. var obj1 = {};
  89. var protoObj1 = {};
  90. var arrObj0 = {};
  91. var litObj0 = {prop1: 3.14159265358979};
  92. var litObj1 = {prop0: 0, prop1: 1};
  93. var arrObj0 = {};
  94. var func0 = function(argMath0,argMath1,argMath2 /*= argMath1*/){
  95. return (arrObj0.length |= (typeof(arrObj0.length) == 'undefined') );
  96. };
  97. var func1 = function(){
  98. return (((e >= this.prop1)||(f < protoObj1.prop0)) * (((obj0.prop1 !== protoObj1.length)||(arrObj0.length != g)) + +null));
  99. };
  100. var func2 = function(){
  101. strvar0 = strvar7[5%strvar7.length];
  102. arrObj0.prop1 /=((new RangeError()) instanceof ((typeof RegExp == 'function' ) ? RegExp : Object));
  103. var __loopvar1 = loopInvariant,__loopSecondaryVar1_0 = loopInvariant;
  104. for (var _strvar0 in ary) {
  105. if(typeof _strvar0 === 'string' && _strvar0.indexOf('method') != -1) continue;
  106. __loopvar1 -= 2;
  107. __loopSecondaryVar1_0--;
  108. ary[_strvar0] = Math.pow((func2.caller), (protoObj0.prop0 += (((test0.caller) * ((func2.caller) - (func2.caller))) instanceof ((typeof Boolean == 'function' ) ? Boolean : Object))));
  109. (function(){
  110. })();
  111. _strvar0 = (func2.caller);
  112. strvar4 = 'Ö$'+'+.'+'%!' + '}%'.concat(((obj0.length = func1()) instanceof ((typeof RegExp == 'function' ) ? RegExp : Object)));
  113. }
  114. return (((d /= func1.call(litObj1 )) * arrObj0[(((((shouldBailout ? (arrObj0[((((shouldBailout ? (Object.defineProperty(obj1, 'prop1', {writable: false, enumerable: true, configurable: true }), (shouldBailout ? (h = { valueOf: function() { WScript.Echo('h valueOf'); return 3; } }, ui32[(f64[(protoObj1.length) & 255]) & 255]) : ui32[(f64[(protoObj1.length) & 255]) & 255])) : (shouldBailout ? (h = { valueOf: function() { WScript.Echo('h valueOf'); return 3; } }, ui32[(f64[(protoObj1.length) & 255]) & 255]) : ui32[(f64[(protoObj1.length) & 255]) & 255]))) >= 0 ? ( (shouldBailout ? (Object.defineProperty(obj1, 'prop1', {writable: false, enumerable: true, configurable: true }), (shouldBailout ? (h = { valueOf: function() { WScript.Echo('h valueOf'); return 3; } }, ui32[(f64[(protoObj1.length) & 255]) & 255]) : ui32[(f64[(protoObj1.length) & 255]) & 255])) : (shouldBailout ? (h = { valueOf: function() { WScript.Echo('h valueOf'); return 3; } }, ui32[(f64[(protoObj1.length) & 255]) & 255]) : ui32[(f64[(protoObj1.length) & 255]) & 255]))) : 0) & 0xF)] = 'x') : undefined ), (shouldBailout ? (Object.defineProperty(obj1, 'prop1', {writable: false, enumerable: true, configurable: true }), (shouldBailout ? (h = { valueOf: function() { WScript.Echo('h valueOf'); return 3; } }, ui32[(f64[(protoObj1.length) & 255]) & 255]) : ui32[(f64[(protoObj1.length) & 255]) & 255])) : (shouldBailout ? (h = { valueOf: function() { WScript.Echo('h valueOf'); return 3; } }, ui32[(f64[(protoObj1.length) & 255]) & 255]) : ui32[(f64[(protoObj1.length) & 255]) & 255]))) >= 0 ? (shouldBailout ? (Object.defineProperty(obj1, 'prop1', {writable: false, enumerable: true, configurable: true }), (shouldBailout ? (h = { valueOf: function() { WScript.Echo('h valueOf'); return 3; } }, ui32[(f64[(protoObj1.length) & 255]) & 255]) : ui32[(f64[(protoObj1.length) & 255]) & 255])) : (shouldBailout ? (h = { valueOf: function() { WScript.Echo('h valueOf'); return 3; } }, ui32[(f64[(protoObj1.length) & 255]) & 255]) : ui32[(f64[(protoObj1.length) & 255]) & 255])) : 0)) & 0XF)] - uic8.length) ? ((protoObj1.prop1 != g)||(obj1.prop1 != d)) : (shouldBailout ? (Object.defineProperty(arrObj0, 'prop0', {writable: true, enumerable: false, configurable: true }), arguments[((((b >>= ary[((((i8[(91) & 255] >> -1536822999.9) >= 0 ? (i8[(91) & 255] >> -1536822999.9) : 0)) & 0XF)]) >= 0 ? (b >>= ary[((((i8[(91) & 255] >> -1536822999.9) >= 0 ? (i8[(91) & 255] >> -1536822999.9) : 0)) & 0XF)]) : 0)) & 0XF)]) : arguments[((((b >>= ary[((((i8[(91) & 255] >> -1536822999.9) >= 0 ? (i8[(91) & 255] >> -1536822999.9) : 0)) & 0XF)]) >= 0 ? (b >>= ary[((((i8[(91) & 255] >> -1536822999.9) >= 0 ? (i8[(91) & 255] >> -1536822999.9) : 0)) & 0XF)]) : 0)) & 0XF)]));
  115. };
  116. var func3 = function(argMath3,argMath4,...argArr5){
  117. var re1 = /^(?:(\d[a7]+\d)[a7]+(?!.))/g;
  118. func1();
  119. return Math.abs(((({valueOf: function() { return 65537;}, prop7: i16[709111450], prop6: {valueOf: function() { return -2147483648;}, prop1: (d += 115)}, prop4: (obj0.prop1 /= (typeof(protoObj0.length) != 'undefined') ), prop3: (argMath4 === obj0.length), prop1: argMath4, 83: arrObj0[((((527182132 instanceof ((typeof EvalError == 'function' ) ? EvalError : Object)) >= 0 ? (527182132 instanceof ((typeof EvalError == 'function' ) ? EvalError : Object)) : 0)) & 0XF)], 62: ('1' + '^$!+'.charCodeAt((h)%7))} * argMath4 + ('%×Q!%' + '%,¢!;7%l' || (func3.caller))) && (typeof(protoObj0.prop0) != 'undefined') ) !== (typeof(f) != 'string') ));
  120. };
  121. var func4 = function(){
  122. function func5 () {
  123. }
  124. obj6 = new func5();
  125. return (typeof(h) == 'number') ;
  126. return (test0.caller);
  127. };
  128. obj0.method0 = func3;
  129. obj0.method1 = func2;
  130. obj1.method0 = obj0.method0;
  131. obj1.method1 = obj0.method0;
  132. arrObj0.method0 = func3;
  133. arrObj0.method1 = func3;
  134. var ary = new Array(10);
  135. var i8 = new Int8Array(256);
  136. var i16 = new Int16Array(256);
  137. var i32 = new Int32Array(256);
  138. var ui8 = new Uint8Array(256);
  139. var ui16 = new Uint16Array(256);
  140. var ui32 = new Uint32Array(256);
  141. var f32 = new Float32Array(256);
  142. var f64 = new Float64Array(256);
  143. var uic8 = new Uint8ClampedArray(256);
  144. var IntArr0 = new Array(41,-840401897,2147483647,-737091287459698432,2073021661,-622597859,4294967296,4049808157226898432,-1073741824,-92706176,-73);
  145. var IntArr1 = [6016909847483059200,-2147483646,-216446918726729152,-478410706549293760,-1415934990,-1462370209,-168];
  146. var FloatArr0 = new Array();
  147. var VarArr0 = new Array('#',-7.15739939346669E+18,-27344852,-210972656,-813745142,65536,1556601913,4294967297,7263023039494802432);
  148. var a = 1252918647.1;
  149. var b = 120;
  150. var c = 2093313666;
  151. var d = -4.00291011644038E+18;
  152. var e = -256460535;
  153. var f = true;
  154. var g = 621525664;
  155. var h = 2147483647;
  156. var strvar0 = '1' + '^$!+';
  157. var strvar1 = '#' + '#!f!';
  158. var strvar2 = '#' + '#!f!';
  159. var strvar3 = 'Ðä'+'$o'+'$`' + '#a';
  160. var strvar4 = '±)K²$' + ')(6%$,f@';
  161. var strvar5 = 'Ðä'+'$o'+'$`' + '#a';
  162. var strvar6 = 'Ðä'+'$o'+'$`' + '#a';
  163. var strvar7 = 'F' + '!%H!';
  164. arrObj0[0] = +undefined;
  165. arrObj0[1] = -559911196.9;
  166. arrObj0[2] = 104;
  167. arrObj0[3] = 946969434;
  168. arrObj0[4] = +0;
  169. arrObj0[5] = -81;
  170. arrObj0[6] = undefined;
  171. arrObj0[7] = -2147483649;
  172. arrObj0[8] = 114;
  173. arrObj0[9] = +null;
  174. arrObj0[10] = 8.61626927758237E+18;
  175. arrObj0[11] = 254;
  176. arrObj0[12] = 237;
  177. arrObj0[13] = 4.53231215898624E+18;
  178. arrObj0[14] = +null;
  179. arrObj0[arrObj0.length-1] = 87;
  180. arrObj0.length = makeArrayLength(-240);
  181. ary[0] = 352456150;
  182. ary[1] = 1073741823;
  183. ary[2] = -4.60776890876879E+18;
  184. ary[3] = 214975552.1;
  185. ary[4] = -204611709;
  186. ary[5] = 759989774.1;
  187. ary[6] = +Infinity;
  188. ary[7] = -1032965232;
  189. ary[8] = -1209001971.9;
  190. ary[9] = -2147483648;
  191. ary[10] = -411847650;
  192. ary[11] = -2147483648;
  193. ary[12] = 65536;
  194. ary[13] = -1432897141.9;
  195. ary[14] = 710489564;
  196. ary[ary.length-1] = 166;
  197. ary.length = makeArrayLength(+Infinity);
  198. var protoObj0 = Object.create(obj0);
  199. var protoObj1 = Object.create(obj1);
  200. var aliasOfi16 = i16;;
  201. this.prop0 = -3.28790484587579E+18;
  202. this.prop1 = 317474964.1;
  203. obj0.prop0 = 0;
  204. obj0.prop1 = 5;
  205. obj0.length = makeArrayLength(-267259884);
  206. protoObj0.prop0 = 309791201;
  207. protoObj0.prop1 = -2147483649;
  208. protoObj0.length = makeArrayLength(-6.61778274392096E+17);
  209. obj1.prop0 = 1346446687;
  210. obj1.prop1 = +undefined;
  211. obj1.length = makeArrayLength(612356277);
  212. protoObj1.prop0 = -3;
  213. protoObj1.prop1 = -5.42001747651146E+18;
  214. protoObj1.length = makeArrayLength(8.17686394885755E+18);
  215. arrObj0.prop0 = 1538442027.1;
  216. arrObj0.prop1 = 3;
  217. arrObj0.length = makeArrayLength(+null);
  218. WScript.Echo(strvar3 >(test0.caller));
  219. strvar4 = strvar3[5%strvar3.length];
  220. with (protoObj1) {
  221. strvar4 = strvar4.concat((test0.caller));
  222. WScript.Echo(strvar2 >=(({prop0: (~ (protoObj0.prop1 !== this.prop1)), prop1: (-811083942 instanceof ((typeof Function == 'function' ) ? Function : Object)), prop2: (-945286020 * ((-811083942 instanceof ((typeof Function == 'function' ) ? Function : Object)) - 5.0008137661454E+18)), prop3: ((shouldBailout ? (Object.defineProperty(obj0, 'length', {get: function() { WScript.Echo('obj0.length getter'); return 3; }, configurable: true }), -46168042) : -46168042) * (test0.caller) + (! 'Ðä'+'$o'+'$`' + '#a')), prop4: (shouldBailout ? (Object.defineProperty(obj0, 'length', {writable: false, enumerable: true, configurable: true }), Object.create({66: -98, prop0: null, prop1: '#', prop2: NaN, prop4: true, prop5: b, prop6: protoObj1.length, prop7: arrObj0.length})) : Object.create({66: -98, prop0: null, prop1: '#', prop2: NaN, prop4: true, prop5: b, prop6: protoObj1.length, prop7: arrObj0.length})), prop5: ((~ undefined) ? (-472897588 instanceof ((typeof Array == 'function' ) ? Array : Object)) : protoObj0.method0.call(protoObj1 , strvar2, FloatArr0, VarArr0)), prop6: f32[(protoObj1.method0(strvar5,IntArr0,FloatArr0)) & 255]} + (test0.caller)) ? arrObj0.length : {20: ((shouldBailout ? obj0.method1 = func2 : 1), obj0.method1()), 31: VarArr0[(5)], prop1: (shouldBailout ? (Object.defineProperty(this, 'prop0', {writable: false, enumerable: false, configurable: true }), ((g == this.prop0)&&(obj1.prop1 === d))) : ((g == this.prop0)&&(obj1.prop1 === d))), prop3: ary[(16)], prop4: ((- protoObj0.method1()) >= (shouldBailout ? (Object.defineProperty(protoObj1, 'prop1', {get: function() { WScript.Echo('protoObj1.prop1 getter'); return 3; }, set: function(_x) { WScript.Echo('protoObj1.prop1 setter'); }, configurable: true }), obj1.method1(strvar7,ary,VarArr0)) : obj1.method1(strvar7,ary,VarArr0))), prop6: ((obj1.prop1 <= obj0.prop1)||(obj1.length > arrObj0.prop1)), valueOf: function() { return 2147483650;}}));
  223. obj6 = Object.create(protoObj0);
  224. }
  225. var __loopvar0 = loopInvariant,__loopSecondaryVar0_0 = loopInvariant;
  226. do {
  227. __loopSecondaryVar0_0 += 2;
  228. if (__loopvar0 >= loopInvariant + 2) break;
  229. __loopvar0++;
  230. strvar6 = (',' + '%%Q*').replace('T', '1' + '^$!+') + arrObj0[((((((shouldBailout ? obj6.method0 = obj0.method0 : 1), obj6.method0(strvar5,IntArr0,FloatArr0)), h) >= 0 ? (((shouldBailout ? obj6.method0 = obj0.method0 : 1), obj6.method0(strvar5,IntArr0,FloatArr0)), h) : 0)) & 0XF)];
  231. strvar0 = strvar5.concat(obj1.prop1).concat((typeof(arrObj0.length) != 'string') );
  232. } while((i16[((((shouldBailout ? obj6.method0 = obj0.method0 : 1), obj6.method0(strvar5,IntArr0,FloatArr0)), h)) & 255]))
  233. obj0.prop1={20: ((shouldBailout ? obj0.method1 = func2 : 1), obj0.method1()), 31: VarArr0[(5)], prop1: (shouldBailout ? (Object.defineProperty(this, 'prop0', {writable: false, enumerable: false, configurable: true }), ((g == this.prop0)&&(obj1.prop1 === d))) : ((g == this.prop0)&&(obj1.prop1 === d))), prop3: ary[(16)], prop4: ((- protoObj0.method1()) >= (shouldBailout ? (Object.defineProperty(protoObj1, 'prop1', {get: function() { WScript.Echo('protoObj1.prop1 getter'); return 3; }, set: function(_x) { WScript.Echo('protoObj1.prop1 setter'); }, configurable: true }), obj1.method1(strvar7,ary,VarArr0)) : obj1.method1(strvar7,ary,VarArr0))), prop6: ((obj1.prop1 <= obj0.prop1)||(obj1.length > arrObj0.prop1)), valueOf: function() { return 2147483650;}};
  234. WScript.Echo('a = ' + (a|0));
  235. WScript.Echo('b = ' + (b|0));
  236. WScript.Echo('c = ' + (c|0));
  237. WScript.Echo('d = ' + (d|0));
  238. WScript.Echo('e = ' + (e|0));
  239. WScript.Echo('f = ' + (f|0));
  240. WScript.Echo('g = ' + (g|0));
  241. WScript.Echo('h = ' + (h|0));
  242. WScript.Echo('this.prop0 = ' + (this.prop0|0));
  243. WScript.Echo('this.prop1 = ' + (this.prop1|0));
  244. WScript.Echo('obj0.prop0 = ' + (obj0.prop0|0));
  245. WScript.Echo('obj0.prop1 = ' + (obj0.prop1|0));
  246. WScript.Echo('obj0.length = ' + (obj0.length|0));
  247. WScript.Echo('protoObj0.prop0 = ' + (protoObj0.prop0|0));
  248. WScript.Echo('protoObj0.prop1 = ' + (protoObj0.prop1|0));
  249. WScript.Echo('protoObj0.length = ' + (protoObj0.length|0));
  250. WScript.Echo('obj1.prop0 = ' + (obj1.prop0|0));
  251. WScript.Echo('obj1.prop1 = ' + (obj1.prop1|0));
  252. WScript.Echo('obj1.length = ' + (obj1.length|0));
  253. WScript.Echo('protoObj1.prop0 = ' + (protoObj1.prop0|0));
  254. WScript.Echo('protoObj1.prop1 = ' + (protoObj1.prop1|0));
  255. WScript.Echo('protoObj1.length = ' + (protoObj1.length|0));
  256. WScript.Echo('arrObj0.prop0 = ' + (arrObj0.prop0|0));
  257. WScript.Echo('arrObj0.prop1 = ' + (arrObj0.prop1|0));
  258. WScript.Echo('arrObj0.length = ' + (arrObj0.length|0));
  259. WScript.Echo('obj6.prop0 = ' + (obj6.prop0|0));
  260. WScript.Echo('obj6.prop1 = ' + (obj6.prop1|0));
  261. WScript.Echo('obj6.length = ' + (obj6.length|0));
  262. WScript.Echo('strvar0 = ' + (strvar0));
  263. WScript.Echo('strvar1 = ' + (strvar1));
  264. WScript.Echo('strvar2 = ' + (strvar2));
  265. WScript.Echo('strvar3 = ' + (strvar3));
  266. WScript.Echo('strvar4 = ' + (strvar4));
  267. WScript.Echo('strvar5 = ' + (strvar5));
  268. WScript.Echo('strvar6 = ' + (strvar6));
  269. WScript.Echo('strvar7 = ' + (strvar7));
  270. WScript.Echo('arrObj0[0] = ' + (arrObj0[0]|0));
  271. WScript.Echo('arrObj0[1] = ' + (arrObj0[1]|0));
  272. WScript.Echo('arrObj0[2] = ' + (arrObj0[2]|0));
  273. WScript.Echo('arrObj0[3] = ' + (arrObj0[3]|0));
  274. WScript.Echo('arrObj0[4] = ' + (arrObj0[4]|0));
  275. WScript.Echo('arrObj0[5] = ' + (arrObj0[5]|0));
  276. WScript.Echo('arrObj0[6] = ' + (arrObj0[6]|0));
  277. WScript.Echo('arrObj0[7] = ' + (arrObj0[7]|0));
  278. WScript.Echo('arrObj0[8] = ' + (arrObj0[8]|0));
  279. WScript.Echo('arrObj0[9] = ' + (arrObj0[9]|0));
  280. WScript.Echo('arrObj0[10] = ' + (arrObj0[10]|0));
  281. WScript.Echo('arrObj0[11] = ' + (arrObj0[11]|0));
  282. WScript.Echo('arrObj0[12] = ' + (arrObj0[12]|0));
  283. WScript.Echo('arrObj0[13] = ' + (arrObj0[13]|0));
  284. WScript.Echo('arrObj0[14] = ' + (arrObj0[14]|0));
  285. WScript.Echo('arrObj0[arrObj0.length-1] = ' + (arrObj0[arrObj0.length-1]|0));
  286. WScript.Echo('arrObj0.length = ' + (arrObj0.length|0));
  287. WScript.Echo('ary[0] = ' + (ary[0]|0));
  288. WScript.Echo('ary[1] = ' + (ary[1]|0));
  289. WScript.Echo('ary[2] = ' + (ary[2]|0));
  290. WScript.Echo('ary[3] = ' + (ary[3]|0));
  291. WScript.Echo('ary[4] = ' + (ary[4]|0));
  292. WScript.Echo('ary[5] = ' + (ary[5]|0));
  293. WScript.Echo('ary[6] = ' + (ary[6]|0));
  294. WScript.Echo('ary[7] = ' + (ary[7]|0));
  295. WScript.Echo('ary[8] = ' + (ary[8]|0));
  296. WScript.Echo('ary[9] = ' + (ary[9]|0));
  297. WScript.Echo('ary[10] = ' + (ary[10]|0));
  298. WScript.Echo('ary[11] = ' + (ary[11]|0));
  299. WScript.Echo('ary[12] = ' + (ary[12]|0));
  300. WScript.Echo('ary[13] = ' + (ary[13]|0));
  301. WScript.Echo('ary[14] = ' + (ary[14]|0));
  302. WScript.Echo('ary[ary.length-1] = ' + (ary[ary.length-1]|0));
  303. WScript.Echo('ary.length = ' + (ary.length|0));
  304. for (var i = 0; i < GiantPrintArray.length; i++) {
  305. WScript.Echo(GiantPrintArray[i]);
  306. }
  307. ;
  308. WScript.Echo('sumOfary = ' + ary.slice(0, 23).reduce(function(prev, curr) {{ return '' + prev + curr; }},0));
  309. WScript.Echo('subset_of_ary = ' + ary.slice(0, 11));;
  310. WScript.Echo('sumOfIntArr0 = ' + IntArr0.slice(0, 23).reduce(function(prev, curr) {{ return '' + prev + curr; }},0));
  311. WScript.Echo('subset_of_IntArr0 = ' + IntArr0.slice(0, 11));;
  312. WScript.Echo('sumOfIntArr1 = ' + IntArr1.slice(0, 23).reduce(function(prev, curr) {{ return '' + prev + curr; }},0));
  313. WScript.Echo('subset_of_IntArr1 = ' + IntArr1.slice(0, 11));;
  314. WScript.Echo('sumOfFloatArr0 = ' + FloatArr0.slice(0, 23).reduce(function(prev, curr) {{ return '' + prev + curr; }},0));
  315. WScript.Echo('subset_of_FloatArr0 = ' + FloatArr0.slice(0, 11));;
  316. WScript.Echo('sumOfVarArr0 = ' + VarArr0.slice(0, 23).reduce(function(prev, curr) {{ return '' + prev + curr; }},0));
  317. WScript.Echo('subset_of_VarArr0 = ' + VarArr0.slice(0, 11));;
  318. };
  319. // generate profile
  320. test0();
  321. // Run Simple JIT
  322. test0();
  323. // run JITted code
  324. runningJITtedCode = true;
  325. test0();
  326. // run code with bailouts enabled
  327. shouldBailout = true;
  328. test0();
  329. print('pass');