marko/compiler/ast/MemberExpression.js
2015-12-28 21:55:29 -07:00

40 lines
909 B
JavaScript

'use strict';
var Node = require('./Node');
class MemberExpression extends Node {
constructor(def) {
super('MemberExpression');
this.object = def.object;
this.property = def.property;
this.computed = def.computed;
}
generateCode(codegen) {
var object = this.object;
var property = this.property;
var computed = this.computed;
codegen.generateCode(object);
if (computed) {
codegen.write('[');
codegen.generateCode(property);
codegen.write(']');
} else {
codegen.write('.');
codegen.generateCode(property);
}
}
toJSON() {
return {
type: 'MemberExpression',
object: this.object,
property: this.property,
computed: this.computed
};
}
}
module.exports = MemberExpression;