浏览代码

Add anonymous functions before other statements.

Daniel Buckmaster 10 年之前
父节点
当前提交
170a4ea08f
共有 1 个文件被更改,包括 8 次插入2 次删除
  1. 8 2
      Engine/source/console/codeBlock.cpp

+ 8 - 2
Engine/source/console/codeBlock.cpp

@@ -482,7 +482,10 @@ bool CodeBlock::compile(const char *codeFileName, StringTableEntry fileName, con
    {
    {
       if (gAnonFunctionList)
       if (gAnonFunctionList)
       {
       {
-         gStatementList->append(gAnonFunctionList);
+         // Prepend anonymous functions to statement list, so they're defined already when
+         // the statements run.
+         gAnonFunctionList->append(gStatementList);
+         gStatementList = gAnonFunctionList;
       }
       }
    }
    }
 
 
@@ -622,7 +625,10 @@ const char *CodeBlock::compileExec(StringTableEntry fileName, const char *inStri
    {
    {
       if (gAnonFunctionList)
       if (gAnonFunctionList)
       {
       {
-         gStatementList->append(gAnonFunctionList);
+         // Prepend anonymous functions to statement list, so they're defined already when
+         // the statements run.
+         gAnonFunctionList->append(gStatementList);
+         gStatementList = gAnonFunctionList;
       }
       }
    }
    }