From 8ab5b50f1b18a1af6a107611e58d62ed4aea17d3 Mon Sep 17 00:00:00 2001 From: "fschneider@chromium.org" Date: Mon, 29 Aug 2011 10:50:47 +0000 Subject: [PATCH] Introduce support for local function declarations in Hydrogen. Review URL: http://codereview.chromium.org/7782001 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@9047 ce2b1a6d-e550-0410-aec6-3dcde31c8c00 --- src/hydrogen.cc | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/hydrogen.cc b/src/hydrogen.cc index dd3a591..012e8b8 100644 --- a/src/hydrogen.cc +++ b/src/hydrogen.cc @@ -5804,13 +5804,17 @@ void HGraphBuilder::VisitThisFunction(ThisFunction* expr) { void HGraphBuilder::VisitDeclaration(Declaration* decl) { // We support only declarations that do not require code generation. Variable* var = decl->proxy()->var(); - if (!var->IsStackAllocated() || decl->fun() != NULL) { + if (!var->IsStackAllocated()) { return Bailout("unsupported declaration"); } if (decl->mode() == Variable::CONST) { ASSERT(var->IsStackAllocated()); environment()->Bind(var, graph()->GetConstantHole()); + } else if (decl->fun() != NULL) { + VisitForValue(decl->fun()); + HValue* function = Pop(); + environment()->Bind(var, function); } } -- 2.7.4