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