src/BytecodeCompiler.cpp
changeset 190 dd04fce774cd
parent 188 bab29bcec7fe
child 192 23a804fa1d3e
     1.1 --- a/src/BytecodeCompiler.cpp	Sun Sep 16 21:59:18 2012 -0700
     1.2 +++ b/src/BytecodeCompiler.cpp	Sun Sep 16 21:59:26 2012 -0700
     1.3 @@ -973,7 +973,18 @@
     1.4          } else if (type->isFixedLength()) {
     1.5              __ newarray(OP_NEWFIXED, map, tenure);
     1.6          } else {
     1.7 -            __ newarray(OP_NEWEMPTY, map, tenure);
     1.8 +            if (node->postDimensions()) {
     1.9 +                for (size_t i = 0; i < node->postDimensions()->length(); i++) {
    1.10 +                    Expression *expr = node->postDimensions()->at(i);
    1.11 +                    if (expr)
    1.12 +                        expr->accept(this);
    1.13 +                    else
    1.14 +                        __ int_(0);
    1.15 +                }
    1.16 +                __ newarray(OP_NEWSIZED, map, tenure);
    1.17 +            } else {
    1.18 +                __ newarray(OP_NEWEMPTY, map, tenure);
    1.19 +            }
    1.20          }
    1.21      } else if (type->isStruct()) {
    1.22          Local<Map> map(zone_, type->newMap());