workaround for browsers without Object.keys