"SyntaxError: Unexpected token < in JSON at position 0" on source map load failure
#13.136 aberto em 29 de dez. de 2020
Métricas do repositório
- Stars
- (27.361 stars)
- Métricas de merge de PR
- (Mesclagem média 19d 10h) (147 fundiu PRs em 30d)
Description
When the code is built with -g4 but the resulting .map file is unavailable at the page load time, the code fails with a bit mysterious error:
SyntaxError: Unexpected token < in JSON at position 0
printErr @ a.out.html:1246
abort @ a.out.js:1273
getSourceMap @ a.out.js:1444
(anonymous) @ a.out.js:1455
Promise.catch (async)
getSourceMapPromise @ a.out.js:1454
createWasm @ a.out.js:1668
(anonymous) @ a.out.js:7682
The stack trace points to the getSourceMap() function (https://github.com/emscripten-core/emscripten/blob/9bb322f8a7ee89d6ac67e828b9c7a7022ddf8de2/src/source_map_support.js#L105). Neither this function nor the read_() function (https://github.com/emscripten-core/emscripten/blob/9bb322f8a7ee89d6ac67e828b9c7a7022ddf8de2/src/web_or_worker_shell_read.js#L7) it calls have the error handling code. So when the source map loading fails with a 404 error and some non-empty HTML body, this code tries to parse this 404 error page as a JSON dump and therefore fails with this SyntaxError.