use :node;

var Node = module.require('../Node').Node;

fn ArrayExpression(elements)

extends Node {

this.type = 'ArrayExpression';
this.elements = elements;

for element in this.elements {
  if element? {
    element.parent = this;
  }
}

}

ArrayExpression.prototype.codegen = () -> {

if !super.codegen() {
  return;
}

for element, i in this.elements {
  this.elements[i] = element?.codegen();
}

return this;

};

ArrayExpression.prototype.hasCallExpression = () -> true;

exports.ArrayExpression = ArrayExpression;