diff --git a/lib/model/synthesize/getter.dot.js b/lib/model/synthesize/getter.dot.js index 827743d..ed365c3 100644 --- a/lib/model/synthesize/getter.dot.js +++ b/lib/model/synthesize/getter.dot.js @@ -1,12 +1,18 @@ 'use strict'; /* Only use this style of comments, not "//" */ -return function get() { +return function get(options) { var m = {{# def.modelAccessPrefix }}; - return m {{~ it.parsedPath :pathNode }} + var ret = m {{~ it.parsedPath :pathNode }} {{? pathNode.interpolate}} && (m = m[this._args[ {{= pathNode.interpolate }} ]]) {{??}} && (m = m{{= pathNode.property }}) {{?}} {{~}}; + + if (options && options.destroyAfterUse) { + this.destroy(); + } + + return ret; }; diff --git a/lib/model/synthesize/setter.dot.js b/lib/model/synthesize/setter.dot.js index b955345..5f3e31b 100644 --- a/lib/model/synthesize/setter.dot.js +++ b/lib/model/synthesize/setter.dot.js @@ -8,7 +8,7 @@ /** * Template that synthesizes setter for Model and for ModelPath */ -return function set(value) { +return function set(value, options) { {{# def.initVars:'set' }} {{# def.createTree:'set' }} @@ -46,4 +46,8 @@ return function set(value) { {{ /* post all stored messages */ }} {{# def.postMessages }} } + + if (options && options.destroyAfterUse) { + this.destroy(); + } };