diff --git a/compiler/ast/Slot.js b/compiler/ast/Slot.js index db98283f6..9e25d55ef 100644 --- a/compiler/ast/Slot.js +++ b/compiler/ast/Slot.js @@ -5,22 +5,25 @@ var Node = require('./Node'); class Slot extends Node { constructor(def) { super('Slot'); - + this.onDone = def.onDone; this.generatorSlot = null; } generateCode(generator) { + if (this.onDone) { + generator.onDone((generator) => { + this.onDone(this, generator); + }); + } // At the time the code for this node is to be generated we instead // create a slot. A slot is just a marker in the output code stream // that we can later inject code into. The injection happens after // the entire tree has been walked. - this.generatorSlot = generator.createSlot(); + this.generatorSlot = generator.beginSlot(this); } setContent(content) { - this.generatorSlot.setContent(content, { - statement: this.statement - }); + this.generatorSlot.setContent(content); } toJSON() {