wp_enqueue_script with dependencies doesn’t work

This is a bug in WordPress.

https://core.trac.wordpress.org/ticket/35873

As far as I can see, it can currently be fixed with https://core.trac.wordpress.org/attachment/ticket/35873/35873.3.patch, if you are reading this some time later, it has probably already been fixed for your WordPress version.

As a temporary workaround, set parent dependencies to both child and grandchild. This way grandchild.js will not get lost:

wp_register_script('parent','parent.js', array('grandchild', 'child'), '1', true);
wp_register_script('child', 'child.js', array('grandchild'), '1', FALSE);
wp_register_script('grandchild', 'grandchild.js', array(), '1', true);