code: function createSubVM (item, index) {
      var subEl = this.child.cloneNode(true)
      var data = shallowClone(item)
  
      data.$index = index
      data.$value = item
  
      var $scope = new Scope(data, this.$scope)
      // this.$scope is a parent scope, 
      // on the top of current scope
      if(this.$scope) {
          this.$scope.children.push($scope)
          // data.$parent = this.$scope.data
      }
      return {
          $index: index,
          $value: item,
          $compiler: this.$vm.$compile(subEl, $scope),
          $scope: $scope
      }
  }
docs: function RepeatViewModel (el, data, index, parentVM, parentScope) { data = shallowClone(data) data.$index = index data.$value = data var $scope = new Scope(data, parentScope) // on the top of current scope parentScope && parentScope.children.push($scope) this.$index = index this.$value = data this.$compiler = parentVM.$compile(el, $scope) this.$scope = $scope } 
  create a sub-vm for array item with specified index