Sha256: 74d11e42f6d8b96aa222a34f7e0c3babd36420e1c26b799c185459e1668a7a8b

Contents?: true

Size: 712 Bytes

Versions: 3

Compression:

Stored size: 712 Bytes

Contents

use :node;

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

fn TryStatement(block, handler, finalizer)
  extends Node {
  
  this.type = 'TryStatement';
  
  this.block = block;
  this.block.parent = this;
  
  this.handler = handler;
  if this.handler? {
    this.handler.parent = this;
  }
  
  this.finalizer = finalizer;
  if this.finalizer? {
    this.finalizer.parent = this;
  }
}

TryStatement.prototype.codegen = () -> {
  if !super.codegen() {
    return;
  }
  
  this.block = this.block.codegen();
  
  if this.handler? {
    this.handler = this.handler.codegen();
  }
  
  if this.finalizer? {
    this.finalizer = this.finalizer.codegen();
  }
  
  return this;
};

exports.TryStatement = TryStatement;

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/TryStatement.spider
spider-src-0.1.6 lib/spider-src/support/spider/src/ast/statements/TryStatement.spider
spider-src-0.1.5 lib/spider-src/support/spider/src/ast/statements/TryStatement.spider