JS backend improvements