actual = '';
expected = "function f() {\n  var a = arguments;\n  \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  \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  \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  \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  \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  \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  \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  \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  \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  \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  \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  \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  \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  \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  \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  \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  \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  \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  \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  \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  \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  \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  \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  \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  \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  \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  \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  \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  \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  \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)