'use strict'; var Node = require('./Node'); var isCompoundExpression = require('../util/isCompoundExpression'); class NewExpression extends Node { constructor(def) { super('NewExpression'); this.callee = def.callee; this.args = def.args; } generateCode(codegen) { this.callee = codegen.generateCode(this.callee); this.args = codegen.generateCode(this.args); return this; } writeCode(writer) { var callee = this.callee; var args = this.args; writer.write('new '); var wrap = isCompoundExpression(callee); if (wrap) { writer.write('('); } writer.write(callee); if (wrap) { writer.write(')'); } writer.write('('); if (args && args.length) { for (let i=0, argsLen = args.length; i