Hacker News new | ask | show | jobs
by oever 3605 days ago
One of the main points of the blog is that Scala.js integrates well with the JavaScript apis and those apis are full of null. A typical loop in the DOM looks like this:

    var node = element.firstChild;
    while (node) {
        // do something
        node = node.nextSibling;
    }
Perhaps those interfaces use the Option class?
1 comments

I wrote a small test function. It appears that Scala.js has no default protections against null values from the browser DOM.

  def printNodes(targetNode: dom.Node): Unit = {
    var c = targetNode.firstChild        
    while (c != null) {
      if (c.nodeValue != null) {
        println(c.nodeValue)
      }
      c = c.nextSibling
    }
  }
The return value from firstChild and nextSibling can be null.