Como essa é uma pergunta bastante popular que trata da edição ao vivo do JS, quero apontar outra opção útil. Conforme descrito por svjacob em sua resposta:
Percebi que poderia anexar um ponto de interrupção no depurador a alguma linha de código antes do que queria editar dinamicamente. E como os pontos de interrupção permanecem mesmo após o recarregamento da página, pude editar as alterações desejadas enquanto pausava no ponto de interrupção e continuei a deixar a página carregar.
A solução acima não funcionou para mim em JS muito grande (pacote webpack - versão reduzida de 3,21 MB, 130k linhas de código na versão pré-certificada) - o Chrome travou e solicitou o recarregamento da página, revertendo as alterações salvas. O caminho a seguir neste caso foi o Fiddler, onde você pode definir a opção AutoRespond para substituir qualquer recurso remoto por qualquer arquivo local do seu computador - consulte esta pergunta para obter detalhes .
No meu caso, eu também tive que adicionar cabeçalhos CORS ao violinista para simular com êxito a resposta.