]> git.bts.cx Git - sun.git/blobdiff - runtime/src/sun/compiler/vm_generator.c
do not evaluate variables until they are used
[sun.git] / runtime / src / sun / compiler / vm_generator.c
index deb10b8065a4e625ccaa1865eedb2b27dda738eb..0309257792d04d4c0fb92d06991186ef1b1525b1 100644 (file)
@@ -114,7 +114,7 @@ static VMGeneratorOutputScope *generatorCreate() {
        VMGeneratorOutputScope *scope = malloc(sizeof(VMGeneratorOutputScope)); // fixme these mallocs
        memset(scope, 0, sizeof(VMGeneratorOutputScope));
 
-       scope->instructionCount = 1024;
+       scope->instructionCount = 2048;
        scope->instructions = malloc(scope->instructionCount * sizeof(struct VMGeneratorInstruction));
        scope->nextInstructionIdx = 0;
 
@@ -1001,26 +1001,26 @@ static size_t generateModuleInstructions(VMGeneratorOutputScope *generator, SLTN
                generatorPatchOperand(generator, start, 0, address);
 
                // then do variables
-               for (SLTNode *n = node->moduleStatementsAndDefinitions; n != NULL; n = n->sequenceNext) {
-                       switch (n->sequenceNode->type) {
-                               case SLTNodeTypeFunctionDefinition:
+               //for (SLTNode *n = node->moduleStatementsAndDefinitions; n != NULL; n = n->sequenceNext) {
+               //      switch (n->sequenceNode->type) {
+               //              case SLTNodeTypeFunctionDefinition:
                                        // Do nothing...
-                                       break;
+               //                      break;
 
-                               case SLTNodeTypeVariableDefinition:
-                                       generateStatementInstructions(generator, n->sequenceNode, 0);
-                                       break;
+                               //case SLTNodeTypeVariableDefinition:
+                                       //generateStatementInstructions(generator, n->sequenceNode, 0);
+                               //      break;
 
-                               default:
+               //              default:
                                        //generator_assert_msg(false, "could not define %s", sltNodeTypeToString(n->sequenceNode->type));
-                                       break;
-                       }
-               }
+               //                      break;
+               //      }
+               //}
 
                // statements
                for (SLTNode *n = node->moduleStatementsAndDefinitions; n != NULL; n = n->sequenceNext) {
                        switch (n->sequenceNode->type) {
-                               case SLTNodeTypeVariableDefinition:
+                               //case SLTNodeTypeVariableDefinition:
                                case SLTNodeTypeTypeDefinition:
                                case SLTNodeTypeFunctionDefinition:
                                        // Do nothing...