| //------------------------------------------------------------------------------------------------------- | |
| // Copyright (C) Microsoft. All rights reserved. | |
| // Licensed under the MIT license. See LICENSE.txt file in the project root for full license information. | |
| //------------------------------------------------------------------------------------------------------- | |
| // Test case for Blue bug 379253 | |
| // Construct a json object string with the given number of properties | |
| function GetJSONString(prefix, count) | |
| { | |
| var buffer = []; | |
| for (var i = 0; i < count; i++) { | |
| buffer.push('"' + prefix + i + '": true'); | |
| } | |
| return "{ " + buffer.join(',') + " }"; | |
| } | |
| var string1 = GetJSONString("prop", 100); | |
| var string2 = GetJSONString("drop", 550); | |
| // Create a JSON object with a 100 properties | |
| var object1 = JSON.parse(string1); | |
| // Clear reference to that object to make its properties eligible for collection | |
| object1 = null; | |
| // Parse a second JSON object, this time with a large number of properties | |
| // This parse has a reviver passed in too to cause an enumeration to occur after parse | |
| var k = 0; | |
| var object2 = JSON.parse(string2, function(key, value) { return k++; }); | |
| WScript.Echo("pass"); |