From 86f7f406e45fe41224c8371d44eef80a9d5e14ad Mon Sep 17 00:00:00 2001 From: Patrick Steele-Idem Date: Wed, 16 Dec 2015 21:35:52 -0700 Subject: [PATCH] Allow an onDone listener to be associated with a slot --- compiler/ast/Slot.js | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) 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() {