michael@0: // Copyright 2009 the Sputnik authors. All rights reserved. michael@0: // This code is governed by the BSD license found in the LICENSE file. michael@0: michael@0: /** michael@0: * The Identifier in a FunctionExpression can be referenced from inside the FunctionExpression's FunctionBody to allow the function calling itself recursively michael@0: * michael@0: * @path ch13/13.0/S13_A3_T1.js michael@0: * @description Creating a recursive function that calculates factorial, as a variable. michael@0: * Function call itself by it`s name michael@0: */ michael@0: michael@0: var __func = function __exp__func(arg){ michael@0: if (arg === 1) { michael@0: return arg; michael@0: } else { michael@0: return __exp__func(arg-1)*arg; michael@0: } michael@0: }; michael@0: michael@0: var fact_of_3 = __func(3); michael@0: michael@0: ////////////////////////////////////////////////////////////////////////////// michael@0: //CHECK#1 michael@0: if (fact_of_3 !== 6) { michael@0: $ERROR("#1: fact_of_3 === 6. Actual: fact_of_3 ==="+fact_of_3); michael@0: } michael@0: // michael@0: ////////////////////////////////////////////////////////////////////////////// michael@0: