--- /dev/null
+'use strict'
+
+var convert = require('unist-util-is/convert')
+
+module.exports = findAllAfter
+
+function findAllAfter(parent, index, test) {
+ var is = convert(test)
+ var results = []
+ var children
+ var child
+ var length
+
+ if (!parent || !parent.type || !parent.children) {
+ throw new Error('Expected parent node')
+ }
+
+ children = parent.children
+ length = children.length
+
+ if (index && index.type) {
+ index = children.indexOf(index)
+ }
+
+ if (isNaN(index) || index < 0 || index === Infinity) {
+ throw new Error('Expected positive finite index or child node')
+ }
+
+ while (++index < length) {
+ child = children[index]
+
+ if (is(child, index, parent)) {
+ results.push(child)
+ }
+ }
+
+ return results
+}