diff options
Diffstat (limited to 'lib/handlebars/compiler')
-rw-r--r-- | lib/handlebars/compiler/compiler.js | 6 | ||||
-rw-r--r-- | lib/handlebars/compiler/javascript-compiler.js | 8 |
2 files changed, 7 insertions, 7 deletions
diff --git a/lib/handlebars/compiler/compiler.js b/lib/handlebars/compiler/compiler.js index 21e1024..be17ac3 100644 --- a/lib/handlebars/compiler/compiler.js +++ b/lib/handlebars/compiler/compiler.js @@ -310,11 +310,7 @@ Compiler.prototype = { DATA: function(data) { this.options.data = true; - if (data.id.isScoped || data.id.depth) { - throw new Exception('Scoped data references are not supported: ' + data.original, data); - } - - this.opcode('lookupData'); + this.opcode('lookupData', data.id.depth); var parts = data.id.parts; for(var i=0, l=parts.length; i<l; i++) { this.opcode('lookup', parts[i]); diff --git a/lib/handlebars/compiler/javascript-compiler.js b/lib/handlebars/compiler/javascript-compiler.js index 8781819..769179b 100644 --- a/lib/handlebars/compiler/javascript-compiler.js +++ b/lib/handlebars/compiler/javascript-compiler.js @@ -403,8 +403,12 @@ JavaScriptCompiler.prototype = { // On stack, after: data, ... // // Push the data lookup operator - lookupData: function() { - this.pushStackLiteral('data'); + lookupData: function(depth) { + if (!depth) { + this.pushStackLiteral('data'); + } else { + this.pushStackLiteral('this.data(data, ' + depth + ')'); + } }, // [pushStringParam] |