michael@0: function f1(foo, bar) foo + bar; michael@0: assertEq(f1.toString(), "function f1(foo, bar) foo + bar"); michael@0: assertEq(f1.toString(), f1.toSource()); michael@0: assertEq(decompileFunction(f1), f1.toString()); michael@0: assertEq(decompileBody(f1), "foo + bar;"); michael@0: // No semicolon on purpose michael@0: function f2(foo, bar) foo + bar michael@0: assertEq(f2.toString(), "function f2(foo, bar) foo + bar"); michael@0: assertEq(f2.toString(), f2.toSource()); michael@0: var f3 = function (foo, bar) foo + bar; michael@0: assertEq(f3.toSource(), "(function (foo, bar) foo + bar)"); michael@0: assertEq(f3.toString(), "function (foo, bar) foo + bar"); michael@0: // No semicolon on purpose michael@0: var f4 = function (foo, bar) foo + bar michael@0: assertEq(f4.toSource(), "(function (foo, bar) foo + bar)"); michael@0: assertEq(f4.toString(), "function (foo, bar) foo + bar"); michael@0: var f5 = function (foo, bar) foo + bar ; michael@0: assertEq(f5.toSource(), "(function (foo, bar) foo + bar)"); michael@0: assertEq(f5.toString(), "function (foo, bar) foo + bar"); michael@0: var f6 = function (foo, bar) foo + bar; var a = 42 michael@0: assertEq(f6.toSource(), "(function (foo, bar) foo + bar)"); michael@0: assertEq(f6.toString(), "function (foo, bar) foo + bar"); michael@0: var f7 = function (foo, bar) foo + bar + '\ michael@0: long\ michael@0: string\ michael@0: test\ michael@0: ' michael@0: // a comment followed by some space michael@0: michael@0: michael@0: assertEq(f7.toString(), "function (foo, bar) foo + bar + '\\\nlong\\\nstring\\\ntest\\\n'"); michael@0: assertEq(f7.toSource(), "(" + f7.toString() + ")");