| //------------------------------------------------------------------------------------------------------- | |
| // Copyright (C) Microsoft. All rights reserved. | |
| // Licensed under the MIT license. See LICENSE.txt file in the project root for full license information. | |
| //------------------------------------------------------------------------------------------------------- | |
| // | |
| //NOTE: this may break if enumeration order policy is changed in Chakra but that doesn't mean we have a bug in TTD | |
| // | |
| var x = { a: 1, b: 2}; | |
| var largeObj = {}; | |
| var outerObj = { a: 3, b: 4, c: 5 }; | |
| var innerObj = { a: 3, b: 4, c: 5 }; | |
| var objWithNumber= { a: 12, b: 13, c:23 }; | |
| objWithNumber[13] = "Number13"; | |
| objWithNumber[15] = "Number15"; | |
| var undef; | |
| var nullValue = null; | |
| var integer = 3; | |
| var double = 3.4; | |
| WScript.SetTimeout(testFunction, 50); | |
| ///////////////// | |
| function testFunction() | |
| { | |
| telemetryLog("Scenario 1: Adding properties on the fly", true); | |
| for(var i in x) | |
| { | |
| if(x[i] == 2) | |
| { | |
| x.c = 3; | |
| x.d = 4; | |
| } | |
| telemetryLog(`${x[i]}`, true); | |
| } | |
| telemetryLog("Scenario 2: Large number of properties in forin", true); | |
| for(var k=0; k < 25; k++) | |
| { | |
| largeObj["p"+k] = k + 0.3; | |
| } | |
| for(var i in largeObj) | |
| { | |
| telemetryLog(`${largeObj[i]}`, true); | |
| } | |
| telemetryLog("Sceanrio 3: Nested Forin", true); | |
| for(var i in outerObj) | |
| { | |
| telemetryLog(`${i}`, true); | |
| for(var j in innerObj) | |
| { | |
| telemetryLog(`${j}`, true); | |
| } | |
| } | |
| telemetryLog("Scenario 4: Properties and numerical indices in object", true); | |
| for(var i in objWithNumber) | |
| { | |
| telemetryLog(`${objWithNumber[i]}`, true); | |
| } | |
| for(var i in undef) | |
| { | |
| telemetryLog("FAILED: Entering enumeration of undefined", true); | |
| } | |
| for(var i in nullValue) | |
| { | |
| telemetryLog("FAILED: Entering enumeration of null value", true); | |
| } | |
| for(var i in integer) | |
| { | |
| telemetryLog("FAILED: Entering enumeration of integer", true); | |
| } | |
| for(var i in double) | |
| { | |
| telemetryLog("FAILED: Entering enumeration of double", true); | |
| } | |
| emitTTDLog(ttdLogURI); | |
| } |