Sha256: d455baddf6861dd3fbf71da6c48116fc852a15f62acceea3a48485f336d0dd87

Contents?: true

Size: 930 Bytes

Versions: 3

Compression:

Stored size: 930 Bytes

Contents

use :node;

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

fn ExportDeclarationStatement(specifiers, source, declaration, isDefault)
  extends Node {
  
  this.type = "ExportDeclaration";
  this['default'] = isDefault;
  
  this.specifiers = specifiers;
  if specifiers? {
    for specifier in this.specifiers {
      specifier.parent = this;
    }
  }
  
  this.source = source;
  if source? {
    this.source.parent = this;
  }
  
  this.declaration = declaration;
  if declaration? {
    this.declaration.parent = this;
  }
}

ExportDeclarationStatement.prototype.codegen = () -> {
  if !super.codegen() {
    return;
  }
  
  if this.specifiers? {
    for specifier, i in this.specifiers {
      this.specifiers[i] = specifier.codegen();
    }
  }
  
  this.source = this.source?.codegen();
  this.declaration = this.declaration?.codegen();
    
  return this;
};

exports.ExportDeclarationStatement = ExportDeclarationStatement;

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
spider-src-0.1.7 lib/spider-src/support/spider/src/ast/statements/ExportDeclarationStatement.spider
spider-src-0.1.6 lib/spider-src/support/spider/src/ast/statements/ExportDeclarationStatement.spider
spider-src-0.1.5 lib/spider-src/support/spider/src/ast/statements/ExportDeclarationStatement.spider