| //------------------------------------------------------------------------------------------------------- | |
| // Copyright (C) Microsoft. All rights reserved. | |
| // Licensed under the MIT license. See LICENSE.txt file in the project root for full license information. | |
| //------------------------------------------------------------------------------------------------------- | |
| var echo = WScript.Echo; | |
| // https://github.com/Microsoft/ChakraCore/issues/1340 | |
| function testForInInitializer() { | |
| try { | |
| eval('(function () { "use strict"; for (var i = 0 in { }) { } })'); | |
| print('testForInInitializer strict: failure: did not throw'); | |
| } catch (e) { | |
| var m = '' + e; | |
| var result = m === 'SyntaxError: for-in loop head declarations cannot have an initializer' ? 'success' : 'failure'; | |
| print('testForInInitializer strict: ' + result + ': e = ' + m); | |
| } | |
| try { | |
| var f = eval('(function () { for (var i = 0 in { }) { } return i; })'); | |
| var i = f(); | |
| var result = i === 0 ? 'success' : 'failure'; | |
| print('testForInInitializer non-strict: ' + result + ': i = ' + i); | |
| } catch (e) { | |
| print('testForInInitializer non-strict: failure: e = ' + e); | |
| } | |
| } | |
| testForInInitializer(); | |
| // regress WOOB 1143623 | |
| function find(arr, value) { | |
| var result = -1; | |
| for(var i in arr) | |
| { | |
| echo("enumerated index:", i); | |
| if(arr[i] == value) | |
| { | |
| result = i; | |
| break; | |
| } | |
| } | |
| return result; | |
| } | |
| var arr = [0, 1, 2, 3, 4, 5]; | |
| echo("Find 3 at index: ", find(arr, 3)); | |
| function propCacheTest() | |
| { | |
| var obj = new Object(); | |
| for (var i = 0; i < 10; i++) | |
| { | |
| obj["randomprop" + i] = i; | |
| } | |
| var propArray = new Array(); | |
| for (var prop in obj) | |
| { | |
| propArray[propArray.length] = prop; | |
| } | |
| for (var prop in Array) | |
| { | |
| } | |
| obj = null; | |
| return propArray; | |
| } | |
| var props = propCacheTest(); | |
| CollectGarbage(); | |
| for (var i = 0; i < props.length; i++) | |
| { | |
| echo(props[i]); | |
| } |