please set `this.childNodes` to a local var to avoid the property lookup for it occurring multiple times