boilerplate
prevent negative indexs when unshifting

it probably has negative effects on v8
add remove() and toJSON()
docs