Full (well, almost) support for splice() and add a test