From fe1fc8267bdd31f6acaac18d301c5e8a25f8d521 Mon Sep 17 00:00:00 2001 From: Boris Zbarsky Date: Thu, 12 Sep 2013 11:08:21 -0500 Subject: [PATCH] Bug 899296 - Restore bytecode-level constant folding in lazily compiled functions. r=jorendorff. --- js/src/frontend/Parser.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/js/src/frontend/Parser.cpp b/js/src/frontend/Parser.cpp index 210d56f2ec88..d6054b04d89b 100644 --- a/js/src/frontend/Parser.cpp +++ b/js/src/frontend/Parser.cpp @@ -2249,7 +2249,6 @@ Parser::standaloneLazyFunction(HandleFunction fun, unsigned st return null(); } - if (fun->isNamedLambda()) { if (AtomDefnPtr p = pc->lexdeps->lookup(fun->name())) { Definition *dn = p.value().get(); @@ -2263,6 +2262,9 @@ Parser::standaloneLazyFunction(HandleFunction fun, unsigned st if (!pc->generateFunctionBindings(context, alloc, bindings)) return null(); + if (!FoldConstants(context, &pn, this)) + return null(); + return pn; }