function str2slice( str ) {
	var args;
	var arg;
	var n;
	var v;
	var i;
	if ( str.substring( 0, PREFIX.length ) !== PREFIX ) {
		return null;
	}
	n = str.length - 1;
	if ( str[ n ] !== ')' ) {
		return null;
	}
	str = trim( str.substring( PREFIX.length, n ) );
	str = str.split( RE_SEP );
	if ( str.length !== NARGS ) {
		return null;
	}
	args = [];
	for ( i = 0; i < NARGS; i++ ) {
		v = str[ i ];
		if ( v === 'null' ) {
			arg = null;
		} else if ( RE_INTEGER.test( v ) ) {
			arg = parseInt( v, 10 );
		} else {
			return null;
		}
		args.push( arg );
	}
	return new Slice( args[ 0 ], args[ 1 ], args[ 2 ] );
}
Parses a string-serialized Slice object.

## Notes

-   The function returns `null` if provided an invalid string.

@param {string} str - input string
@returns {(Slice|null)} Slice object (or null)

@example
var s = str2slice( 'Slice(null,null,null)' );
// returns <Slice>

var v = s.start;
// returns null

v = s.stop;
// returns null

v = s.step;
// returns null

@example
var s = str2slice( 'Slice(0,10,1)' );
// returns <Slice>

var v = s.start;
// returns 0

v = s.stop;
// returns 10

v = s.step;
// returns 1

@example
var s = str2slice( 'Slice(foo,bar)' );
// returns null