38 lines
708 B
JavaScript
38 lines
708 B
JavaScript
|
var a = [true,false];
|
||
|
function foo(x) { }
|
||
|
|
||
|
for (var i=0;i<3;i++) {
|
||
|
foo(a[i]);
|
||
|
}
|
||
|
for (var k in a) {
|
||
|
foo(a[k]); // k is a string, which shouldn't be used for array access
|
||
|
}
|
||
|
|
||
|
var b = (null : ?{[key: string]: string});
|
||
|
for (var j in b) {
|
||
|
foo(b[j]);
|
||
|
}
|
||
|
|
||
|
var c;
|
||
|
for (var m in (c = b)) {
|
||
|
foo(c[m]);
|
||
|
}
|
||
|
|
||
|
var d;
|
||
|
for (var n in (d = a)) {
|
||
|
foo(d[n]); // d is a string, which shouldn't be used for array access
|
||
|
}
|
||
|
|
||
|
for (var x in undefined) {
|
||
|
foo(x); // unreachable
|
||
|
}
|
||
|
|
||
|
for (var x in null) {
|
||
|
foo(x); // unreachable
|
||
|
}
|
||
|
|
||
|
for (var y in this) {
|
||
|
// regression test to make sure `in this` doesn't fatal. it's currently
|
||
|
// allowed, even though we can't actually enumerate all the keys on `this`.
|
||
|
}
|