1.1 --- a/src/BytecodeCompiler.cpp Sun Aug 12 20:51:31 2012 -0700
1.2 +++ b/src/BytecodeCompiler.cpp Sat Sep 01 16:36:20 2012 -0700
1.3 @@ -333,7 +333,9 @@
1.4 Variable *var = proxy->binding()->toVariable();
1.5
1.6 // Bind.
1.7 - if (var->type()->isReference() || var->type()->isArray())
1.8 + if (var->location() == Variable::ENVIRONMENT)
1.9 + getEnvSlot(var);
1.10 + else if (var->type()->isReference() || var->type()->isArray())
1.11 __ get(var);
1.12
1.13 // Dup and fetch.
1.14 @@ -346,7 +348,8 @@
1.15 }
1.16 } else {
1.17 assert(!var->type()->isArray());
1.18 - __ get(var);
1.19 + if (var->location() != Variable::ENVIRONMENT)
1.20 + __ get(var);
1.21 if (node->postfix())
1.22 __ dup();
1.23 }
1.24 @@ -406,6 +409,8 @@
1.25
1.26 if (var->type()->isReference())
1.27 __ setref(node->type());
1.28 + else if (var->location() == Variable::ENVIRONMENT)
1.29 + setEnvSlot(var);
1.30 else
1.31 __ set(var);
1.32 } else if (expr->isFieldExpression()) {
1.33 @@ -1115,9 +1120,13 @@
1.34 }
1.35
1.36 void
1.37 +BytecodeCompiler::visit(FunctionTypeStatement *node)
1.38 +{
1.39 +}
1.40 +
1.41 +void
1.42 BytecodeCompiler::visit(EnumStatement *node)
1.43 {
1.44 - // :TODO: eventually, we'll export these.
1.45 }
1.46
1.47 void