'use strict'; const isValidJavaScriptIdentifier = require('../util/isValidJavaScriptIdentifier'); const Node = require('./Node'); class Property extends Node { constructor(def) { super('Property'); this.key = def.key; this.value = def.value; } generateCode(codegen) { var key = this.key; var value = this.value; if (key.type === 'Literal') { var propName = key.value; if (isValidJavaScriptIdentifier(propName)) { key = codegen.builder.identifier(propName); } } codegen.generateCode(key); codegen.write(': '); codegen.generateCode(value); } toJSON() { return { type: 'Property', key: this.key, value: this.value }; } walk(walker) { this.key = walker.walk(this.key); this.value = walker.walk(this.value); } } module.exports = Property;