evanw / evanw/node-source-map-support
Browser hangs on new Buffer(...).toString() for large source maps
- Vorherrschende Sprache
- JavaScript
- Sterne
- 2.2k
- Forks
- 223
- PR-Merge-Kennzahlen
- Keine gemergten PRs in 30 T.
Beschreibung
Hello. Found this issue during investigation of #93. We're using webpack, so I'm guessing it might be related to webpack's `Buffer` browser polyfill? (I think it uses [feross/buffer](https://github.com/feross/buffer), which is what Browserify uses?)
For large source maps, the following [line](https://github.com/evanw/node-source-map-support/blob/master/source-map-support.js#L111) caused the browser (Chrome 44.0.2403.155 (64-bit)) to choke:
``` js
sourceMapData = new Buffer(rawData, "base64").toString();
```
I tweaked this to use [`window.atob`](https://developer.mozilla.org/en-US/docs/Web/API/WindowBase64/atob) when in the browser:
``` js
if (isInBrowser()) {
sourceMapData = window.atob(rawData);
} else {
sourceMapData = new Buffer(rawData, "base64").toString();
}
```
If you think that's a reasonable solution, I'm happy to set up a PR? (Haven't actually checked this change against the test suite yet though :sweat_smile:)
Beitragsleitfaden
Für dieses Repository ist kein Beitragsleitfaden indexiert
Rechercherichtung
Beginnen Sie bei source-map-support.js Zeile 111 und untersuchen Sie die Browser- und Node-Pfade zum Decodieren großer Source Maps. Führen Sie die Testsuite aus und überprüfen Sie anschließend, dass der Browser-Pfad den Hänger vermeidet, während der Node-Pfad unverändert bleibt und große Source Maps erfolgreich verarbeitet werden.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Bewertung
- Tech-Stack
- javascript, webpack
- Bereich
- devtools, web-dev
- Issue-Typ
- Bug
- Schwierigkeit
- 2/5
- Geschätzter Aufwand
- 1-3 Stunden
- Aktivitätsstatus
- Veraltet
- Klarheit
- Größtenteils klar
- Anfängerfreundlichkeit
- 52/100