diff --git a/lib/nodes.js b/lib/nodes.js index bc6efe8c..596b0633 100644 --- a/lib/nodes.js +++ b/lib/nodes.js @@ -656,7 +656,7 @@ __extends(IndexNode, BaseNode); IndexNode.prototype.compile_node = function compile_node(o) { var idx; - o.chain_root.wrapped = this.soak_node; + o.chain_root.wrapped = o.chain_root.wrapped || this.soak_node; idx = this.index.compile(o); return "[" + idx + "]"; }; diff --git a/src/nodes.coffee b/src/nodes.coffee index 05fd4af6..4e96159b 100644 --- a/src/nodes.coffee +++ b/src/nodes.coffee @@ -451,7 +451,7 @@ exports.AccessorNode: class AccessorNode extends BaseNode constructor: (name, tag) -> @children: [@name: name] - @prototype:tag is 'prototype' + @prototype: tag is 'prototype' @soak_node: tag is 'soak' this @@ -470,7 +470,7 @@ exports.IndexNode: class IndexNode extends BaseNode @soak_node: tag is 'soak' compile_node: (o) -> - o.chain_root.wrapped: @soak_node + o.chain_root.wrapped: or @soak_node idx: @index.compile o "[$idx]"