Sha256: 42cc3d78534310d50649295aaf982b9ae8866d37e6c4757cdb90ea0442f3afdb

Contents?: true

Size: 684 Bytes

Versions: 3

Compression:

Stored size: 684 Bytes

Contents

use :node;

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

fn ArrayPattern(elements) 
  extends Node {

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

ArrayPattern.prototype.codegen = () -> {
  if !super.codegen() {
    return;
  }
  
  var context = this.getContext().node;
  for element, i in this.elements {
    this.elements[i] = element?.codegen(false);
    
    if element? and element.type == "Identifier" {
      context.defineIdentifier(element);
    }
  }
  
  return this;
};

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

exports.ArrayPattern = ArrayPattern;

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
spider-src-0.1.7 lib/spider-src/support/spider/src/ast/expressions/ArrayPattern.spider
spider-src-0.1.6 lib/spider-src/support/spider/src/ast/expressions/ArrayPattern.spider
spider-src-0.1.5 lib/spider-src/support/spider/src/ast/expressions/ArrayPattern.spider