firescript
Version:
Firescript transpiler
38 lines (32 loc) • 657 B
JavaScript
const JSElement = require('./JSElement')
/**
* ThrowStatement
*
* @class ThrowStatement
* @extends JSElement
*
* interface ThrowStatement {
* type: 'ThrowStatement';
* argument: Expression;
* }
*/
class ThrowStatement extends JSElement {
constructor (ast) {
super(ast)
this.argument = this.createElement(ast.argument)
}
compile (buffer) {
buffer.registerItem(this.location)
buffer.write('throw ')
buffer.write(this.argument)
buffer.write(';')
}
toESString (ctx) {
return this.renderElement(
'throw ' +
this.argument.toESString(ctx) +
';'
)
}
}
module.exports = ThrowStatement