actual = '';
expected = 'function f(t) {\n    if (t) {\n        var b = arguments;\n        appendToActual(b[0]);\n    }\n    for (var i = 0; i < 10; ++i) {\n        var a = arguments;\n        appendToActual(a.callee);\n        appendToActual(a.length);\n        appendToActual(a[0]);\n        appendToActual(a[1]);\n    }\n},4,false,1,function f(t) {\n    if (t) {\n        var b = arguments;\n        appendToActual(b[0]);\n    }\n    for (var i = 0; i < 10; ++i) {\n        var a = arguments;\n        appendToActual(a.callee);\n        appendToActual(a.length);\n        appendToActual(a[0]);\n        appendToActual(a[1]);\n    }\n},4,false,1,function f(t) {\n    if (t) {\n        var b = arguments;\n        appendToActual(b[0]);\n    }\n    for (var i = 0; i < 10; ++i) {\n        var a = arguments;\n        appendToActual(a.callee);\n        appendToActual(a.length);\n        appendToActual(a[0]);\n        appendToActual(a[1]);\n    }\n},4,false,1,function f(t) {\n    if (t) {\n        var b = arguments;\n        appendToActual(b[0]);\n    }\n    for (var i = 0; i < 10; ++i) {\n        var a = arguments;\n        appendToActual(a.callee);\n        appendToActual(a.length);\n        appendToActual(a[0]);\n        appendToActual(a[1]);\n    }\n},4,false,1,function f(t) {\n    if (t) {\n        var b = arguments;\n        appendToActual(b[0]);\n    }\n    for (var i = 0; i < 10; ++i) {\n        var a = arguments;\n        appendToActual(a.callee);\n        appendToActual(a.length);\n        appendToActual(a[0]);\n        appendToActual(a[1]);\n    }\n},4,false,1,function f(t) {\n    if (t) {\n        var b = arguments;\n        appendToActual(b[0]);\n    }\n    for (var i = 0; i < 10; ++i) {\n        var a = arguments;\n        appendToActual(a.callee);\n        appendToActual(a.length);\n        appendToActual(a[0]);\n        appendToActual(a[1]);\n    }\n},4,false,1,function f(t) {\n    if (t) {\n        var b = arguments;\n        appendToActual(b[0]);\n    }\n    for (var i = 0; i < 10; ++i) {\n        var a = arguments;\n        appendToActual(a.callee);\n        appendToActual(a.length);\n        appendToActual(a[0]);\n        appendToActual(a[1]);\n    }\n},4,false,1,function f(t) {\n    if (t) {\n        var b = arguments;\n        appendToActual(b[0]);\n    }\n    for (var i = 0; i < 10; ++i) {\n        var a = arguments;\n        appendToActual(a.callee);\n        appendToActual(a.length);\n        appendToActual(a[0]);\n        appendToActual(a[1]);\n    }\n},4,false,1,function f(t) {\n    if (t) {\n        var b = arguments;\n        appendToActual(b[0]);\n    }\n    for (var i = 0; i < 10; ++i) {\n        var a = arguments;\n        appendToActual(a.callee);\n        appendToActual(a.length);\n        appendToActual(a[0]);\n        appendToActual(a[1]);\n    }\n},4,false,1,function f(t) {\n    if (t) {\n        var b = arguments;\n        appendToActual(b[0]);\n    }\n    for (var i = 0; i < 10; ++i) {\n        var a = arguments;\n        appendToActual(a.callee);\n        appendToActual(a.length);\n        appendToActual(a[0]);\n        appendToActual(a[1]);\n    }\n},4,false,1,true,function f(t) {\n    if (t) {\n        var b = arguments;\n        appendToActual(b[0]);\n    }\n    for (var i = 0; i < 10; ++i) {\n        var a = arguments;\n        appendToActual(a.callee);\n        appendToActual(a.length);\n        appendToActual(a[0]);\n        appendToActual(a[1]);\n    }\n},4,true,1,function f(t) {\n    if (t) {\n        var b = arguments;\n        appendToActual(b[0]);\n    }\n    for (var i = 0; i < 10; ++i) {\n        var a = arguments;\n        appendToActual(a.callee);\n        appendToActual(a.length);\n        appendToActual(a[0]);\n        appendToActual(a[1]);\n    }\n},4,true,1,function f(t) {\n    if (t) {\n        var b = arguments;\n        appendToActual(b[0]);\n    }\n    for (var i = 0; i < 10; ++i) {\n        var a = arguments;\n        appendToActual(a.callee);\n        appendToActual(a.length);\n        appendToActual(a[0]);\n        appendToActual(a[1]);\n    }\n},4,true,1,function f(t) {\n    if (t) {\n        var b = arguments;\n        appendToActual(b[0]);\n    }\n    for (var i = 0; i < 10; ++i) {\n        var a = arguments;\n        appendToActual(a.callee);\n        appendToActual(a.length);\n        appendToActual(a[0]);\n        appendToActual(a[1]);\n    }\n},4,true,1,function f(t) {\n    if (t) {\n        var b = arguments;\n        appendToActual(b[0]);\n    }\n    for (var i = 0; i < 10; ++i) {\n        var a = arguments;\n        appendToActual(a.callee);\n        appendToActual(a.length);\n        appendToActual(a[0]);\n        appendToActual(a[1]);\n    }\n},4,true,1,function f(t) {\n    if (t) {\n        var b = arguments;\n        appendToActual(b[0]);\n    }\n    for (var i = 0; i < 10; ++i) {\n        var a = arguments;\n        appendToActual(a.callee);\n        appendToActual(a.length);\n        appendToActual(a[0]);\n        appendToActual(a[1]);\n    }\n},4,true,1,function f(t) {\n    if (t) {\n        var b = arguments;\n        appendToActual(b[0]);\n    }\n    for (var i = 0; i < 10; ++i) {\n        var a = arguments;\n        appendToActual(a.callee);\n        appendToActual(a.length);\n        appendToActual(a[0]);\n        appendToActual(a[1]);\n    }\n},4,true,1,function f(t) {\n    if (t) {\n        var b = arguments;\n        appendToActual(b[0]);\n    }\n    for (var i = 0; i < 10; ++i) {\n        var a = arguments;\n        appendToActual(a.callee);\n        appendToActual(a.length);\n        appendToActual(a[0]);\n        appendToActual(a[1]);\n    }\n},4,true,1,function f(t) {\n    if (t) {\n        var b = arguments;\n        appendToActual(b[0]);\n    }\n    for (var i = 0; i < 10; ++i) {\n        var a = arguments;\n        appendToActual(a.callee);\n        appendToActual(a.length);\n        appendToActual(a[0]);\n        appendToActual(a[1]);\n    }\n},4,true,1,function f(t) {\n    if (t) {\n        var b = arguments;\n        appendToActual(b[0]);\n    }\n    for (var i = 0; i < 10; ++i) {\n        var a = arguments;\n        appendToActual(a.callee);\n        appendToActual(a.length);\n        appendToActual(a[0]);\n        appendToActual(a[1]);\n    }\n},4,true,1,true,function f(t) {\n    if (t) {\n        var b = arguments;\n        appendToActual(b[0]);\n    }\n    for (var i = 0; i < 10; ++i) {\n        var a = arguments;\n        appendToActual(a.callee);\n        appendToActual(a.length);\n        appendToActual(a[0]);\n        appendToActual(a[1]);\n    }\n},3,true,[object Object],function f(t) {\n    if (t) {\n        var b = arguments;\n        appendToActual(b[0]);\n    }\n    for (var i = 0; i < 10; ++i) {\n        var a = arguments;\n        appendToActual(a.callee);\n        appendToActual(a.length);\n        appendToActual(a[0]);\n        appendToActual(a[1]);\n    }\n},3,true,[object Object],function f(t) {\n    if (t) {\n        var b = arguments;\n        appendToActual(b[0]);\n    }\n    for (var i = 0; i < 10; ++i) {\n        var a = arguments;\n        appendToActual(a.callee);\n        appendToActual(a.length);\n        appendToActual(a[0]);\n        appendToActual(a[1]);\n    }\n},3,true,[object Object],function f(t) {\n    if (t) {\n        var b = arguments;\n        appendToActual(b[0]);\n    }\n    for (var i = 0; i < 10; ++i) {\n        var a = arguments;\n        appendToActual(a.callee);\n        appendToActual(a.length);\n        appendToActual(a[0]);\n        appendToActual(a[1]);\n    }\n},3,true,[object Object],function f(t) {\n    if (t) {\n        var b = arguments;\n        appendToActual(b[0]);\n    }\n    for (var i = 0; i < 10; ++i) {\n        var a = arguments;\n        appendToActual(a.callee);\n        appendToActual(a.length);\n        appendToActual(a[0]);\n        appendToActual(a[1]);\n    }\n},3,true,[object Object],function f(t) {\n    if (t) {\n        var b = arguments;\n        appendToActual(b[0]);\n    }\n    for (var i = 0; i < 10; ++i) {\n        var a = arguments;\n        appendToActual(a.callee);\n        appendToActual(a.length);\n        appendToActual(a[0]);\n        appendToActual(a[1]);\n    }\n},3,true,[object Object],function f(t) {\n    if (t) {\n        var b = arguments;\n        appendToActual(b[0]);\n    }\n    for (var i = 0; i < 10; ++i) {\n        var a = arguments;\n        appendToActual(a.callee);\n        appendToActual(a.length);\n        appendToActual(a[0]);\n        appendToActual(a[1]);\n    }\n},3,true,[object Object],function f(t) {\n    if (t) {\n        var b = arguments;\n        appendToActual(b[0]);\n    }\n    for (var i = 0; i < 10; ++i) {\n        var a = arguments;\n        appendToActual(a.callee);\n        appendToActual(a.length);\n        appendToActual(a[0]);\n        appendToActual(a[1]);\n    }\n},3,true,[object Object],function f(t) {\n    if (t) {\n        var b = arguments;\n        appendToActual(b[0]);\n    }\n    for (var i = 0; i < 10; ++i) {\n        var a = arguments;\n        appendToActual(a.callee);\n        appendToActual(a.length);\n        appendToActual(a[0]);\n        appendToActual(a[1]);\n    }\n},3,true,[object Object],function f(t) {\n    if (t) {\n        var b = arguments;\n        appendToActual(b[0]);\n    }\n    for (var i = 0; i < 10; ++i) {\n        var a = arguments;\n        appendToActual(a.callee);\n        appendToActual(a.length);\n        appendToActual(a[0]);\n        appendToActual(a[1]);\n    }\n},3,true,[object Object],true,function f(t) {\n    if (t) {\n        var b = arguments;\n        appendToActual(b[0]);\n    }\n    for (var i = 0; i < 10; ++i) {\n        var a = arguments;\n        appendToActual(a.callee);\n        appendToActual(a.length);\n        appendToActual(a[0]);\n        appendToActual(a[1]);\n    }\n},3,true,abc,function f(t) {\n    if (t) {\n        var b = arguments;\n        appendToActual(b[0]);\n    }\n    for (var i = 0; i < 10; ++i) {\n        var a = arguments;\n        appendToActual(a.callee);\n        appendToActual(a.length);\n        appendToActual(a[0]);\n        appendToActual(a[1]);\n    }\n},3,true,abc,function f(t) {\n    if (t) {\n        var b = arguments;\n        appendToActual(b[0]);\n    }\n    for (var i = 0; i < 10; ++i) {\n        var a = arguments;\n        appendToActual(a.callee);\n        appendToActual(a.length);\n        appendToActual(a[0]);\n        appendToActual(a[1]);\n    }\n},3,true,abc,function f(t) {\n    if (t) {\n        var b = arguments;\n        appendToActual(b[0]);\n    }\n    for (var i = 0; i < 10; ++i) {\n        var a = arguments;\n        appendToActual(a.callee);\n        appendToActual(a.length);\n        appendToActual(a[0]);\n        appendToActual(a[1]);\n    }\n},3,true,abc,function f(t) {\n    if (t) {\n        var b = arguments;\n        appendToActual(b[0]);\n    }\n    for (var i = 0; i < 10; ++i) {\n        var a = arguments;\n        appendToActual(a.callee);\n        appendToActual(a.length);\n        appendToActual(a[0]);\n        appendToActual(a[1]);\n    }\n},3,true,abc,function f(t) {\n    if (t) {\n        var b = arguments;\n        appendToActual(b[0]);\n    }\n    for (var i = 0; i < 10; ++i) {\n        var a = arguments;\n        appendToActual(a.callee);\n        appendToActual(a.length);\n        appendToActual(a[0]);\n        appendToActual(a[1]);\n    }\n},3,true,abc,function f(t) {\n    if (t) {\n        var b = arguments;\n        appendToActual(b[0]);\n    }\n    for (var i = 0; i < 10; ++i) {\n        var a = arguments;\n        appendToActual(a.callee);\n        appendToActual(a.length);\n        appendToActual(a[0]);\n        appendToActual(a[1]);\n    }\n},3,true,abc,function f(t) {\n    if (t) {\n        var b = arguments;\n        appendToActual(b[0]);\n    }\n    for (var i = 0; i < 10; ++i) {\n        var a = arguments;\n        appendToActual(a.callee);\n        appendToActual(a.length);\n        appendToActual(a[0]);\n        appendToActual(a[1]);\n    }\n},3,true,abc,function f(t) {\n    if (t) {\n        var b = arguments;\n        appendToActual(b[0]);\n    }\n    for (var i = 0; i < 10; ++i) {\n        var a = arguments;\n        appendToActual(a.callee);\n        appendToActual(a.length);\n        appendToActual(a[0]);\n        appendToActual(a[1]);\n    }\n},3,true,abc,function f(t) {\n    if (t) {\n        var b = arguments;\n        appendToActual(b[0]);\n    }\n    for (var i = 0; i < 10; ++i) {\n        var a = arguments;\n        appendToActual(a.callee);\n        appendToActual(a.length);\n        appendToActual(a[0]);\n        appendToActual(a[1]);\n    }\n},3,true,abc,';

// args object not created by interpreter at record time, but maybe at run time

function f(t) {
  if (t) {
    var b = arguments;
    appendToActual(b[0]);
  }
  
  for (var i = 0; i < 10; ++i) {
    var a = arguments;
    appendToActual(a.callee);
    appendToActual(a.length);
    appendToActual(a[0]);
    appendToActual(a[1]);
  }
}

f(false, 1, 2, 3);
f(true, 1, 2, 3);
f(true, {}, 'a');
f(true, 'abc', 'def');


assertEq(actual, expected)
