From fd97381116bbd187e5ecc514533667d223610214 Mon Sep 17 00:00:00 2001 From: "rogerl%netscape.com" Date: Sun, 27 Apr 2003 15:33:13 +0000 Subject: [PATCH] Fixing function literals git-svn-id: svn://10.0.0.236/trunk@141881 18797224-902f-48f8-a5cc-f745e15eee43 --- mozilla/js2/src/js2function.cpp | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/mozilla/js2/src/js2function.cpp b/mozilla/js2/src/js2function.cpp index 4c0fdba49ee..d044be8b715 100644 --- a/mozilla/js2/src/js2function.cpp +++ b/mozilla/js2/src/js2function.cpp @@ -78,12 +78,22 @@ namespace MetaData { ASSERT(fnExpr); // otherwise, an exception would have been thrown out of here fnExpr->obj = NULL; DEFINE_ROOTKEEPER(rk, fnExpr->obj); - JS2Class *exprType; +// JS2Class *exprType; meta->ValidateExpression(&meta->cxt, meta->env, fnExpr); Arena *oldArena = meta->referenceArena; meta->referenceArena = new Arena; try { - meta->SetupExprNode(meta->env, RunPhase, fnExpr, &exprType); +// meta->SetupExprNode(meta->env, RunPhase, fnExpr, &exprType); + + + CompilationData *oldData = meta->startCompilationUnit(fnExpr->function.fWrap->bCon, *bodyStr, srcLoc); + meta->env->addFrame(fnExpr->function.fWrap->compileFrame); + meta->SetupStmt(meta->env, RunPhase, fnExpr->function.body); + fnExpr->function.fWrap->bCon->emitOp(eReturnVoid, meta->engine->errorPos()); + meta->env->removeTopFrame(); + meta->restoreCompilationUnit(oldData); + + } catch (Exception &x) { meta->referenceArena->clear();