/*
 *  Implicit return value of global code, eval code, and function code.
 *
 *  The return value of a function unless it returns with an explicit
 *  value is always 'undefined', see E5 Sections 11.2.3 and 13.2.1.
 *
 *  The return value of a program (global code or eval code) is the
 *  value of its last statement.  A 'return' statement outside of a
 *  function body is, in fact, a SyntaxError (E5 Section 12.9).
 *  See E5 Sections 14, 15.1.2.1.
 */

/*===
3 number
undefined undefined
3 number
===*/

var t;

t = eval("1+2");
print(t, typeof t);

function f1(a,b) { a+b; }
function f2(a,b) { return a+b; }

t = f1(1,2);
print(t, typeof t);

t = f2(1,2);
print(t, typeof t);

