code: function NodeIterator(root, whatToShow, filter) {
    if (!root || !root.nodeType) {
      utils.NotSupportedError();
    }
  
    // Read-only properties
    this._root = root;
    this._referenceNode = root;
    this._pointerBeforeReferenceNode = true;
    this._whatToShow = Number(whatToShow) || 0;
    this._filter = filter || null;
    this._active = false;
    // Record active node iterators in the document, in order to perform
    // "node iterator pre-removal steps".
    root.doc._attachNodeIterator(this);
  }
docs: /* Public API 
  Implemented version: http://www.w3.org/TR/2015/WD-dom-20150618/#nodeiterator
  Latest version: http://www.w3.org/TR/dom/#nodeiterator
  
  @constructor
  @param {Node} root
  @param {number} whatToShow [optional]
  @param {Function|NodeFilter} filter [optional]
  @throws Error