This is hard to get right, see http://perfectionkills.com/how-ecmascript-5-still-does-not-allow-to-subclass-an-array/