This should probably be moved to the above `iterator` function, so that you could have arrays of strings and so it works when passing the `arguments` object to `allNodes` (for variadic methods).

Something like

```js
if (isString(item)) {
    forEach(document.querySelectorAll(item), iterator);
} else if (isList(item)) {
    forEach(item, iterator);
} else {
    callback.call(context, item);
}
```