| //------------------------------------------------------------------------------------------------------- |
| // 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"); |
| } |