-FunctionBodyNode* extractFunctionBody(ProgramNode* program)
-{
- if (!program)
- return 0;
-
- StatementVector& children = program->children();
- if (children.size() != 1)
- return 0;
-
- ExprStatementNode* exprStatement = static_cast<ExprStatementNode*>(children[0].get());
- ASSERT(exprStatement->isExprStatement());
- if (!exprStatement || !exprStatement->isExprStatement())
- return 0;
-
- FuncExprNode* funcExpr = static_cast<FuncExprNode*>(exprStatement->expr());
- ASSERT(funcExpr->isFuncExprNode());
- if (!funcExpr || !funcExpr->isFuncExprNode())
- return 0;
-
- FunctionBodyNode* body = funcExpr->body();
- ASSERT(body);
- return body;
-}
-