function pt1(y, offsetY, x, offsetX, w, h, sumf, blendData, m, sumvq, srcData, l, naddr) {
      if(y + offsetY >= 0 && x + offsetX >= 0 &&
         y + offsetY < h && x + offsetX < w) {
        for(n=0; n<4; n++) {
          for(var c=0; c<3; c++) {
            sumf[c] += blendData[naddr[n] + m + c];
            sumvq[c] += srcData[l + c] - srcData[naddr[n] + c];
          }
        }
      }
  }
Poisson Image Editing module
http://rest-term.com