// Copyright 2009 the Sputnik authors. All rights reserved. // This code is governed by the BSD license found in the LICENSE file. /*--- info: | Function call cannot appear in the program before the FunctionExpression appears es5id: 13_A17_T2 description: > Trying to call a function before the FunctionExpression appears and then using the FunctionExpression one more time ---*/ ////////////////////////////////////////////////////////////////////////////// //CHECK#1 try{ var __result = __func(); throw new Test262Error("#1: var __result = __func() lead to throwing exception"); } catch(e) { if ((e instanceof TypeError) !== true) { throw new Test262Error('#1.2: func should throw a TypeError Actual: ' + (e)); } } // ////////////////////////////////////////////////////////////////////////////// // now we reach the __func overwriting by new expression var __func = function __func(){return "ONE";}; ////////////////////////////////////////////////////////////////////////////// //CHECK#2 var __result = __func(); if (__result !== "ONE") { throw new Test262Error('#2: __result === "ONE". Actual: __result ==='+__result); } // ////////////////////////////////////////////////////////////////////////////// __func = function __func(){return "TWO";}; ////////////////////////////////////////////////////////////////////////////// //CHECK#3 var __result = __func(); if (__result !== "TWO") { throw new Test262Error('#3: __result === "TWO". Actual: __result ==='+__result); } // ////////////////////////////////////////////////////////////////////////////// reportCompare(0, 0);