| //------------------------------------------------------------------------------------------------------- | |
| // 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(); | |