diff --git a/test/com/google/javascript/jscomp/Es6ForOfConverterTest.java b/test/com/google/javascript/jscomp/Es6ForOfConverterTest.java index 156ec36e23c..d4f7fa9125e 100644 --- a/test/com/google/javascript/jscomp/Es6ForOfConverterTest.java +++ b/test/com/google/javascript/jscomp/Es6ForOfConverterTest.java @@ -194,9 +194,6 @@ public void testForOfOnNonIterable() { } public void testForOfWithQualifiedNameInitializer() { - // TODO(b/79532975): handle this case in the type checker and remove disableTypeCheck(); - disableTypeCheck(); - disableTypeInfoValidation(); test( "var obj = {a: 0}; for (obj.a of [1,2,3]) { console.log(obj.a); }", lines( @@ -212,9 +209,6 @@ public void testForOfWithQualifiedNameInitializer() { } public void testForOfWithComplexInitializer() { - // TODO(b/79532975): handle this case in the type checker and remove disableTypeCheck(); - disableTypeCheck(); - disableTypeInfoValidation(); test( "function f() { return {}; } for (f()['x' + 1] of [1,2,3]) {}", lines( diff --git a/test/com/google/javascript/jscomp/runtime_tests/for_of_test.js b/test/com/google/javascript/jscomp/runtime_tests/for_of_test.js index 08858fbecba..d545b8b4173 100644 --- a/test/com/google/javascript/jscomp/runtime_tests/for_of_test.js +++ b/test/com/google/javascript/jscomp/runtime_tests/for_of_test.js @@ -106,3 +106,24 @@ function testForOfArrayNested() { assertEquals(13, result[7]); assertEquals(14, result[8]); } + +function testForOfWithGetPropInitializer() { + const /** {a: number} */ obj = {a: 3}; + for (obj.a of [4]) {} + assertEquals(4, obj.a); +} + +function testForOfWithGetElemInitializer() { + const /** !Object */ obj = {}; + + const /** !Array */ arr = [5, 6, 7]; + const /** !Array */ newArr = []; + var index = 0; + for (obj[index] of arr) { + newArr.push(obj[index]); + index++; + } + + assertArrayEquals(arr, newArr); + assertObjectEquals({0: 5, 1: 6, 2: 7}, obj); +}