| //------------------------------------------------------------------------------------------------------- | |
| // Copyright (C) Microsoft. All rights reserved. | |
| // Licensed under the MIT license. See LICENSE.txt file in the project root for full license information. | |
| //------------------------------------------------------------------------------------------------------- | |
| var A = new Array(10); | |
| A[1] = 100; | |
| Array.prototype[5] = 50; | |
| var Failed = 0; | |
| function FAIL() | |
| { | |
| Failed++; | |
| WScript.Echo("FAILED"); | |
| } | |
| function foo(arr, i, expected) | |
| { | |
| var z = 0; | |
| for(var j = 0;j<10;j++){ | |
| arr = arr[i]; | |
| z += arr + 10; | |
| arr = A; | |
| } | |
| if (z != expected) | |
| { | |
| FAIL(); | |
| } | |
| return i; | |
| } | |
| // generate profile | |
| for(var i=0;i<200;i++) | |
| { | |
| foo(A, 5, 600); | |
| } | |
| Object.defineProperty(A,5,{get:function(){return 200}}); | |
| for(var i=0;i<200;i++) | |
| { | |
| foo(A, 5, 2100); | |
| } | |
| if (!Failed) | |
| { | |
| WScript.Echo("Passed"); | |
| } |