anchor.diff:  	}
   
   	_renderInvSection(node) {
  -		final value = stack.last[node.value];
  +		final value = _stack.last[node.value];
   		if ((value is List && value.isEmpty)
   				|| value == null
   				|| value == false) {
  
positive.code: 	}
  
  	_renderText(node) {
  		ctl.add(node.value);
  	}
  
  	_renderVariable(node) {
  		final value = stack.last[node.value];
  
  		if (value == null) {
  			//FIXME in strict mode throw an error.
  		} else {
  			final s = _htmlEscape(value.toString());
  			ctl.add(s);
  		}
  	}
  
  	_renderSectionWithValue(node, value) {
  		stack.add(value);
  		node.children.forEach(_render_Node);
  		stack.removeLast();
  	}
  
  	_renderSection(node) {
  		final value = stack.last[node.value];
  		if (value is List) {
  			value.forEach((v) => _renderSectionWithValue(node, v));
  		} else if (value is Map) {
  
negative.code: }
  
  _visit(_Node root, visitor(_Node n)) {
  	var _stack = new List<_Node>()..add(root);
  	while (!_stack.isEmpty) {
  		var node = _stack.removeLast();
  		_stack.addAll(node.children);
  		visitor(node);
  	}
  }
  