This test checks text editor javascript formatting.

/**
* Multi-line comment
*
*/
function foo(n) {
// one-line comment
function bar() {
return 42;D

var sum = 0;
for (var i = 0; i < n; ++i) {
for (var j = 0; j < n; ++j) {
sum += i + j;DD


if (sum > 1000) {
while (sum > 0) {
--sum;DDD

============ editor contents start ============
/**
*.Multi-line.comment
*
*/
function.foo(n).{
....//.one-line.comment
....function.bar().{
........return.42;
....}

....var.sum.=.0;
....for.(var.i.=.0;.i.<.n;.++i).{
........for.(var.j.=.0;.j.<.n;.++j).{
............sum.+=.i.+.j;
........}
....}


....if.(sum.>.1000).{
........while.(sum.>.0).{
............--sum;
........}
....}
}

============ editor contents end ============

