Visitar URL original
Releases · webpack/webpack-sources · GitHub
Skip to content

Releases

v3.7.0

Choose a tag to compare

@github-actions github-actions released this 30 Oct 11:38
930e478

Minor Changes

  • Add util.sourceMap.originalPositionFor to find the original position of a generated one. (by @alexander-akait in #313)

Patch Changes

v3.6.0

Choose a tag to compare

@github-actions github-actions released this 26 Sep 17:19
4f49c30

Minor Changes

  • Add map({ scopes: true }), emitting the source map scopes field from the bindings a source declares. (by @alexander-akait in #275)

Patch Changes

v3.5.3

Choose a tag to compare

@github-actions github-actions released this 24 Sep 18:45
05f71a8

Patch Changes

  • Hand out a recorded hash update as buffers, so cached data carries no big string. (by @alexander-akait in #289)

v3.5.2

Choose a tag to compare

@github-actions github-actions released this 24 Sep 16:34
c22a0e3

Patch Changes

  • perf: hash a string-backed source without materializing its buffer (by @alexander-akait in #286)

    RawSource.updateHash and OriginalSource.updateHash called buffer(), which
    encodes the string to UTF-8 and memoizes the result — so every source that was
    hashed kept its content twice, as a string and as a buffer, for as long as the
    source lived. Node hashes a string as UTF-8, the same bytes buffer() produces,
    so the string is hashed directly instead and no digest changes.

    Measured on a webpack build of three.js + lodash-es (1033 modules, 2.71 MB of
    module source): retained arrayBuffers after the build drop from 8.74–8.76 MB
    to 5.81 MB with devtool: false, and from 9.35–12.11 MB to 6.42 MB with
    devtool: "source-map" — disjoint over six and five runs. 1029 Buffer.from
    calls per build are removed, one per module. CPU is unchanged: hashing those
    sources costs 9.23 ms via the buffer against 8.18 ms via the string, which no
    whole-build timing can resolve.

v3.5.1

Choose a tag to compare

@github-actions github-actions released this 06 Jul 11:35
210e0a4

Patch Changes

  • perf: stream potential tokens in OriginalSource instead of materialising an array (by @alexander-akait in #246)

    OriginalSource.streamChunks (and therefore map() / sourceAndMap()) previously built the full splitIntoPotentialTokens array of substrings and then iterated it — even though map() and sourceAndMap() run with finalSource: true and discard every chunk substring. The scan is now streamed by offset, so chunk substrings are only allocated when actually emitted. This removes the intermediate array and, on the dominant final-source paths, all per-token slices: map() / sourceAndMap() allocate ~38–46% less memory and run ~15–40% faster.

  • Reduce allocations and CPU in map() / sourceAndMap(): mappings are serialized into a reused byte buffer instead of per-mapping strings, ReplaceSource verifies original content through a line-offset index instead of splitting sources into line arrays, and ReplaceSource.streamChunks emits position-only chunks and returns the final source directly when finalSource is requested. (by @alexander-akait in #251)

  • Skip sorting ReplaceSource replacements when they were added in order. (by @alexander-akait in #249)

  • perf: use lookup table in splitIntoPotentialTokens for faster character classification (by @xiaoxiaojx in #240)

    Replace multi-comparison chains (4 comparisons in phase 1, 6 in phase 2) with a single Uint8Array bitmask lookup per character. This reduces per-character branching overhead, yielding ~7% improvement on typical source and ~21% on large sources.

v3.5.0

Choose a tag to compare

@github-actions github-actions released this 22 May 08:56
7ad6559

Minor Changes

  • Add clearCache(options?, visited?) method to Source that recursively releases cached data (CachedSource cached maps/buffers/strings, SourceMapSource parsed/serialized map caches, and dual-buffer caches in leaf sources). Lets consumers like webpack's SourceMapDevToolPlugin reclaim memory between chunks rather than accumulating per-task source map data across an entire build. Options: maps (default true) drops cached source maps; source (default true) drops cached source/buffer copies — pass false to keep source available for downstream plugins; parsedMap (default false) additionally drops the parsed object form on SourceMapSource instances when a buffer or string form survives (the combination { maps: true, source: false, parsedMap: true } matches the SourceMapDevToolPlugin call shape in webpack/webpack#20963). The optional visited WeakSet deduplicates the walk when the same child is reachable through multiple parents (e.g. modules shared across chunks). (by @alexander-akait in #221)

v3.4.1

Choose a tag to compare

@github-actions github-actions released this 29 Apr 15:49
5a0b655

Patch Changes

  • Implements more effective buffers and buffer for ReplaceSource and improve performance in other places. (by @alexander-akait in #211)

v3.4.0

Choose a tag to compare

@github-actions github-actions released this 23 Apr 11:58
7c520c2

Minor Changes

  • Add Source.prototype.buffers() that returns the source as Buffer[]. ConcatSource, CachedSource, and CompatSource implement it without allocating an intermediate concatenated buffer, allowing consumers that can write multiple buffers at once (e.g. via writev) to avoid the overhead of Buffer.concat in deeply nested sources. (by @alexander-akait in #204)

Patch Changes

  • fix: use Int32Array for signed VLQ delta accumulation in readMappings so cumulative values that go negative are preserved instead of wrapping to a large unsigned integer (by @alexander-akait in #206)

  • Improved performance in many places. (by @alexander-akait in #209)

v3.3.4

Choose a tag to compare

@alexander-akait alexander-akait released this 15 Feb 16:57

Fixes

  • sync SourceMapSource constructor types with sourceAndMap method (#176)

v3.3.3

Choose a tag to compare

@alexander-akait alexander-akait released this 20 Jun 15:25

Fixes

  • generate last column mapping even when source is missing for ConcatSource