dgraph.js
function link(edge) {
  var es = edge.s.euler
  var et = edge.t.euler
  var euler = new Array(edge.level+1)
  for(var i=0; i<euler.length; ++i) {
    if(es.length <= i) {
      es.push(createEulerVertex(edge.s))
    }
    if(et.length <= i) {
      et.push(createEulerVertex(edge.t))
    }
    euler[i] = es[i].link(et[i], edge)
  }
  edge.euler = euler
}
function link(edge) {
  var es = edge.s.euler
  var et = edge.t.euler
  var euler = new Array(edge.level+1)
  for(var i=0; i<euler.length; ++i) {
    if(es.length <= i) {
      es.push(createEulerVertex(edge.s))
    }
    if(et.length <= i) {
      et.push(createEulerVertex(edge.t))
    }
    euler[i] = es[i].link(et[i], edge)
  }
  edge.euler = euler
}
function link ( edge ) { var es = edge . s . euler var et = edge . t . euler var euler = new Array ( edge . level + 1 ) for ( var i = 0 ; i < euler . length ; ++ i ) { if ( es . length <= i ) { es . push ( createEulerVertex ( edge . s ) ) } if ( et . length <= i ) { et . push ( createEulerVertex ( edge . t ) ) } euler [ i ] = es [ i ] . link ( et [ i ] , edge ) } edge . euler = euler }
Add an edge to all spanning forests with level <= edge.level
Add an edge to all spanning forests with level < = edge . level