actual = '';
expected = 'function f() {\n    var a = arguments;\n    appendToActual(a.callee);\n    appendToActual(a.length);\n    appendToActual(a[0]);\n    appendToActual(a[1]);\n},3,1,2,function f() {\n    var a = arguments;\n    appendToActual(a.callee);\n    appendToActual(a.length);\n    appendToActual(a[0]);\n    appendToActual(a[1]);\n},3,1,2,function f() {\n    var a = arguments;\n    appendToActual(a.callee);\n    appendToActual(a.length);\n    appendToActual(a[0]);\n    appendToActual(a[1]);\n},3,1,2,function f() {\n    var a = arguments;\n    appendToActual(a.callee);\n    appendToActual(a.length);\n    appendToActual(a[0]);\n    appendToActual(a[1]);\n},3,1,2,function f() {\n    var a = arguments;\n    appendToActual(a.callee);\n    appendToActual(a.length);\n    appendToActual(a[0]);\n    appendToActual(a[1]);\n},3,1,2,function f() {\n    var a = arguments;\n    appendToActual(a.callee);\n    appendToActual(a.length);\n    appendToActual(a[0]);\n    appendToActual(a[1]);\n},3,1,2,function f() {\n    var a = arguments;\n    appendToActual(a.callee);\n    appendToActual(a.length);\n    appendToActual(a[0]);\n    appendToActual(a[1]);\n},3,1,2,function f() {\n    var a = arguments;\n    appendToActual(a.callee);\n    appendToActual(a.length);\n    appendToActual(a[0]);\n    appendToActual(a[1]);\n},3,1,2,function f() {\n    var a = arguments;\n    appendToActual(a.callee);\n    appendToActual(a.length);\n    appendToActual(a[0]);\n    appendToActual(a[1]);\n},3,1,2,function f() {\n    var a = arguments;\n    appendToActual(a.callee);\n    appendToActual(a.length);\n    appendToActual(a[0]);\n    appendToActual(a[1]);\n},3,1,2,function f() {\n    var a = arguments;\n    appendToActual(a.callee);\n    appendToActual(a.length);\n    appendToActual(a[0]);\n    appendToActual(a[1]);\n},2,[object Object],a,function f() {\n    var a = arguments;\n    appendToActual(a.callee);\n    appendToActual(a.length);\n    appendToActual(a[0]);\n    appendToActual(a[1]);\n},2,[object Object],a,function f() {\n    var a = arguments;\n    appendToActual(a.callee);\n    appendToActual(a.length);\n    appendToActual(a[0]);\n    appendToActual(a[1]);\n},2,[object Object],a,function f() {\n    var a = arguments;\n    appendToActual(a.callee);\n    appendToActual(a.length);\n    appendToActual(a[0]);\n    appendToActual(a[1]);\n},2,[object Object],a,function f() {\n    var a = arguments;\n    appendToActual(a.callee);\n    appendToActual(a.length);\n    appendToActual(a[0]);\n    appendToActual(a[1]);\n},2,[object Object],a,function f() {\n    var a = arguments;\n    appendToActual(a.callee);\n    appendToActual(a.length);\n    appendToActual(a[0]);\n    appendToActual(a[1]);\n},2,[object Object],a,function f() {\n    var a = arguments;\n    appendToActual(a.callee);\n    appendToActual(a.length);\n    appendToActual(a[0]);\n    appendToActual(a[1]);\n},2,[object Object],a,function f() {\n    var a = arguments;\n    appendToActual(a.callee);\n    appendToActual(a.length);\n    appendToActual(a[0]);\n    appendToActual(a[1]);\n},2,[object Object],a,function f() {\n    var a = arguments;\n    appendToActual(a.callee);\n    appendToActual(a.length);\n    appendToActual(a[0]);\n    appendToActual(a[1]);\n},2,[object Object],a,function f() {\n    var a = arguments;\n    appendToActual(a.callee);\n    appendToActual(a.length);\n    appendToActual(a[0]);\n    appendToActual(a[1]);\n},2,[object Object],a,function f() {\n    var a = arguments;\n    appendToActual(a.callee);\n    appendToActual(a.length);\n    appendToActual(a[0]);\n    appendToActual(a[1]);\n},2,abc,def,function f() {\n    var a = arguments;\n    appendToActual(a.callee);\n    appendToActual(a.length);\n    appendToActual(a[0]);\n    appendToActual(a[1]);\n},2,abc,def,function f() {\n    var a = arguments;\n    appendToActual(a.callee);\n    appendToActual(a.length);\n    appendToActual(a[0]);\n    appendToActual(a[1]);\n},2,abc,def,function f() {\n    var a = arguments;\n    appendToActual(a.callee);\n    appendToActual(a.length);\n    appendToActual(a[0]);\n    appendToActual(a[1]);\n},2,abc,def,function f() {\n    var a = arguments;\n    appendToActual(a.callee);\n    appendToActual(a.length);\n    appendToActual(a[0]);\n    appendToActual(a[1]);\n},2,abc,def,function f() {\n    var a = arguments;\n    appendToActual(a.callee);\n    appendToActual(a.length);\n    appendToActual(a[0]);\n    appendToActual(a[1]);\n},2,abc,def,function f() {\n    var a = arguments;\n    appendToActual(a.callee);\n    appendToActual(a.length);\n    appendToActual(a[0]);\n    appendToActual(a[1]);\n},2,abc,def,function f() {\n    var a = arguments;\n    appendToActual(a.callee);\n    appendToActual(a.length);\n    appendToActual(a[0]);\n    appendToActual(a[1]);\n},2,abc,def,function f() {\n    var a = arguments;\n    appendToActual(a.callee);\n    appendToActual(a.length);\n    appendToActual(a[0]);\n    appendToActual(a[1]);\n},2,abc,def,function f() {\n    var a = arguments;\n    appendToActual(a.callee);\n    appendToActual(a.length);\n    appendToActual(a[0]);\n    appendToActual(a[1]);\n},2,abc,def,';

// args object created on trace

function f() {
  var a = arguments;
  
  appendToActual(a.callee);
  appendToActual(a.length);
  appendToActual(a[0]);
  appendToActual(a[1]);
}

for (var i = 0; i < 10; ++i)
  f(1, 2, 3);
for (var i = 0; i < 10; ++i)
  f({}, 'a');
for (var i = 0; i < 10; ++i)
  f('abc', 'def');


assertEq(actual, expected)
