mirror of
https://github.com/marko-js/marko.git
synced 2025-12-08 19:26:05 +00:00
36 lines
741 B
JavaScript
36 lines
741 B
JavaScript
'use strict';
|
|
|
|
var Node = require('./Node');
|
|
|
|
class Return extends Node {
|
|
constructor(def) {
|
|
super('Return');
|
|
this.argument = def.argument;
|
|
}
|
|
|
|
generateCode(codegen) {
|
|
if (!codegen.inFunction) {
|
|
throw new Error('"return" not allowed outside a function body');
|
|
}
|
|
|
|
this.argument = codegen.generateCode(this.argument);
|
|
return this;
|
|
}
|
|
|
|
writeCode(writer) {
|
|
var argument = this.argument;
|
|
|
|
if (argument) {
|
|
writer.write('return ');
|
|
writer.write(argument);
|
|
} else {
|
|
writer.write('return');
|
|
}
|
|
}
|
|
|
|
walk(walker) {
|
|
this.argument = walker.walk(this.argument);
|
|
}
|
|
}
|
|
|
|
module.exports = Return; |