| //------------------------------------------------------------------------------------------------------- |
| // Copyright (C) Microsoft. All rights reserved. |
| // Licensed under the MIT license. See LICENSE.txt file in the project root for full license information. |
| //------------------------------------------------------------------------------------------------------- |
| |
| |
| function TestCacheAtWrite(expvalue) |
| { |
| var temp = expvalue; |
| var startvalue = expvalue; |
| for(var k=0;k<3;k++) |
| { |
| if(k>=2) |
| { |
| //donot update the cache the next two times |
| startvalue = temp; |
| WScript.Echo("startvalue: "+startvalue); |
| } |
| else |
| { |
| //Keep updating the cache for the first two times |
| expvalue = startvalue; |
| } |
| startvalue++; |
| } |
| } |
| |
| TestCacheAtWrite(0); |
| |
| // Test a loop nest with a cycle of assignments. |
| function testcycle(){ |
| var obj0 = {}; |
| var obj1 = {}; |
| var ary = new Array(10); |
| var ui16 = new Uint16Array(256); |
| var c = 1; |
| obj1.length >>>=1; |
| var __loopvar4 = 0; |
| while(((obj1.prop0 &= (c %= 1))) && __loopvar4 < 3) { |
| __loopvar4++; |
| } |
| for(var __loopvar1 = 0; __loopvar1 < 3; __loopvar1++) { |
| b =c; |
| var __loopvar2 = 0; |
| for(var strvar0 in ui16 ) { |
| if(__loopvar2++ > 3) break; |
| d =b; |
| ary[(15)] = (b-- ); |
| obj0.prop0 =(obj1.length++ ); |
| c =d; |
| } |
| } |
| WScript.Echo("d = " + (d|0)); |
| }; |
| |
| testcycle(); |
| |
| function testcycle2(){ |
| var obj0 = {}; |
| var obj1 = {}; |
| var func0 = function(p0){ |
| obj0.prop0; |
| } |
| obj1.method0 = func0; |
| var obj3 = obj0; |
| var i = 0; |
| while(i < 3) { |
| i++; |
| obj0 = obj3; |
| obj3 = obj1; |
| } |
| obj0.method0() |
| }; |
| |
| // generate profile |
| testcycle2(); |
| |
| // run JITted code |
| testcycle2(); |
| |
| var func3 = function () { |
| return func3.caller; |
| } |
| |
| function v9() { |
| return func3(); |
| } |
| function v14() { |
| func3(1); |
| var v15 = v9(); |
| WScript.Echo(v15); |
| } |
| v14(); |
| v14(); |
| |