TypeScript/tests/baselines/reference/forIn.js
Wesley Wigham 1c93744a9c
Much better comment preservation (#22141)
* Retain comments on (and produce sourcemaps on) the equals token in initializers

* Improved comments/sourcemaps for await, yield, while, and for

* Retain comments on block curly-braces

* Emit comments for if statements

* Improved switch case comment emit

* Improve comment and sourcemap emit for try/catch, throw, and continue statements

* Improve sourcemap emit and comments for with statements

* More accurate sourcemaps+comments emit for new, typeof, void, and delete

* Improve comment emit for element access expressions

* Preserve more comments on imports and exports

* Make function a bit more defensive like other usages of emitTrailingCommentsOfPosition

* Support preserving comments within empty lists

* Handle leading comments of tokens, conditionally indent leading comments

* Stop heuristically sourcemapping tokens

When the transform was trivial it worked, but was unneeded, but when it was complex, it was brittle - best leave source mapping up to the transformers

* Fix unneeded +1

* Tighten up element access comments

* Handle comments on parenthesized expression tokens

* Fix nit
2018-03-02 17:23:59 -08:00

43 lines
680 B
TypeScript

//// [forIn.ts]
var arr = null;
for (var i:number in arr) { // error
var x1 = arr[i];
var y1 = arr[i];
}
for (var j in arr) { // ok
var x2 = arr[j];
var y2 = arr[j];
}
var arr2 = [];
for (j in arr2) { // ok
var x3 = arr2[j];
var y3 = arr2[j];
}
for (var l in arr) {
// error in the body
k[l] = 1;
}
//// [forIn.js]
var arr = null;
for (var i in arr) { // error
var x1 = arr[i];
var y1 = arr[i];
}
for (var j in arr) { // ok
var x2 = arr[j];
var y2 = arr[j];
}
var arr2 = [];
for (j in arr2) { // ok
var x3 = arr2[j];
var y3 = arr2[j];
}
for (var l in arr) {
// error in the body
k[l] = 1;
}