anchor.diff:  
     void _bindTwoWay(tasks, AST ast, scope, directiveScope,
                      controller, AST dstAST) {
  -    var taskId = tasks.registerTask();
  +    var taskId = (tasks != null) ? tasks.registerTask() : 0;
   
       var viewOutbound = false;
       var viewInbound = false;
  
positive.code: 
        switch (p.mode) {
          case '@': // string
            var taskId = tasks.registerTask();
            nodeAttrs.observe(attrName, (value) {
              dstAST.parsedExp.assign(directive, value);
              tasks.completeTask(taskId);
            });
            break;
  
  
negative.code:         viewOutbound = true;
          scope.rootScope.runAsync(() => viewOutbound = false);
          var value = dstAST.parsedExp.assign(controller, inboundValue);
          if (tasks != null) tasks.completeTask(taskId);
          return value;
        }
      });
  