'use strict'; var Node = require('./Node'); var ok = require('assert').ok; class FunctionDeclaration extends Node { constructor(def) { super('FunctionDeclaration'); this.name = def.name; this.params = def.params; this.body = this.makeContainer(def.body); } generateCode(generator) { var name = this.name; var params = this.params; var body = this.body; var statement = this.statement; if (name != null) { ok(typeof name === 'string', 'Function name should be a string'); } generator.write('function' + (name ? ' ' + name : '') + '('); if (params && params.length) { for (let i=0, paramsLen = params.length; i