Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: webpack/webpack
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: v5.112.1
Choose a base ref
...
head repository: webpack/webpack
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: v5.112.2
Choose a head ref
  • 7 commits
  • 54 files changed
  • 3 contributors

Commits on Oct 23, 2026

  1. Configuration menu
    Copy the full SHA
    a1e5f6a View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    8c3cbd3 View commit details
    Browse the repository at this point in the history
  3. perf(css): cut CPU and allocation in the CSS minifier (#22868)

    * perf(css): number properties for the declaration order check
    
    * perf(css): number properties in the longhand fold walk
    
    * perf(css): find an :is() to unwrap during the pseudo name fold
    
    * perf(css): keep source map anchors in one flat array
    
    * perf(css): size a taken piece's span list to what it holds
    
    * perf(css): read only the merge entries a block's properties lead
    
    * perf(css): print each node type in a function of its own
    
    * perf(css): look for a universal selector before walking the parts
    
    * perf(css): spell each small source map delta once
    
    * docs(css): keep the _unwrapLoneIs description to two sentences
    alexander-akait authored Oct 23, 2026
    Configuration menu
    Copy the full SHA
    660608c View commit details
    Browse the repository at this point in the history
  4. test: split the syntax unit tests into tokenizer, parser and printer (#…

    …22825)
    
    * test: split the syntax unit tests into tokenizer, parser and printer
    
    Each language's tests now follow its modules: a tokenizer, a parser and a
    printer, whose file holds both print modes and the minifier that drives
    the printer in its minify mode.
    
    - css/, html/: syntax splits into tokenizer, parser and printer; the
      SourceProcessor tests go to the parser when they walk the tree and to
      the printer when they rewrite what it writes
    - javascript/: the tokenizer blocks leave parser for tokenizer, minify
      (jsMinify) joins printer, and webpack-parser becomes module-parser,
      after `module.parser.javascript`, the layer it tests
    - xml/, json/: minify becomes printer
    
    Every test keeps its name and every snapshot its key; each new file
    requires only what its tests use.
    
    Claude-Session: https://claude.ai/code/session_017TkBWTk3wcyUcJYDp5ZhaP
    
    * test: keep JavascriptParser's tests with webpack's classes
    
    javascript/ holds the syntax: tokenizer, parser, scope and printer.
    JavascriptParser is webpack's layer over it, the one plugins tap, so its
    tests go back to the top level next to NormalModule's and the others.
    The layout docs give tooling/ its own sentence.
    
    Claude-Session: https://claude.ai/code/session_017TkBWTk3wcyUcJYDp5ZhaP
    
    * test: cover the CSS tokenizer from its own tests
    
    The tokenizer suite now reaches every function of the tokenizer and all
    of its statements and branches but five that no input can reach: the
    end-of-input forms of `@`, `#` and numbers, a bad url running to the end,
    TokenStream's mark/restore, whitespace and prelude skipping, and the
    name and range helpers.
    
    Claude-Session: https://claude.ai/code/session_017TkBWTk3wcyUcJYDp5ZhaP
    
    * test: cover the HTML tokenizer from its own tests
    
    The tokenizer suite now reaches every function of the tokenizer and all
    of its statements and branches but sixteen that no input can reach: the
    content modes a start tag or fragment context switches to, NUL in every
    text state, out-of-range character references, and tokenizeXml's tags,
    attributes, comments, CDATA, processing instructions and DOCTYPE.
    
    Claude-Session: https://claude.ai/code/session_017TkBWTk3wcyUcJYDp5ZhaP
    
    * test: share the HTML tree helpers between the HTML suites
    
    The tokenizer, parser and printer suites each carried their own copy of
    the helpers that materialize the struct-of-arrays tree (childrenOf,
    materialize, parseHtml, child, html, body) and of the Mat* typedefs.
    They now live once in test/helpers/materializeHtmlTree.js.
    
    Claude-Session: https://claude.ai/code/session_017TkBWTk3wcyUcJYDp5ZhaP
    
    * test: cover the JavaScript tokenizer from its own tests
    
    Table-driven comparisons with acorn's tokenizer across ecmaVersions and
    options (punctuators, numbers, strings, templates, regexps, comments,
    identifiers, keywords and regexp-vs-division contexts), plus the
    callbacks, error locations and eof behaviour. Every tokenizer function
    is reached; what is left is a readNumber guard no input reaches and the
    context-stack fallback of inGeneratorContext.
    
    Claude-Session: https://claude.ai/code/session_017TkBWTk3wcyUcJYDp5ZhaP
    
    * test: share the JavaScript parse helpers between its suites
    
    The tokenizer and parser suites each carried the same `parse` (the
    options a build hands the parser) and `plain` (a tree, token or error
    as comparable data). They now live once in test/helpers/javascriptParse.js.
    
    Claude-Session: https://claude.ai/code/session_017TkBWTk3wcyUcJYDp5ZhaP
    
    * test: keep the XML printing tests with the XML printer
    
    The beautify and minify output, the embedded and async renderers and
    _xmlCharacterData sat in the HTML parser suite; they move, with their
    snapshots, to xml/printer.
    
    Claude-Session: https://claude.ai/code/session_017TkBWTk3wcyUcJYDp5ZhaP
    alexander-akait authored Oct 23, 2026
    Configuration menu
    Copy the full SHA
    0c02242 View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    4ffac8d View commit details
    Browse the repository at this point in the history
  6. fix: return the value of every module type from importModule() (#22869)

    * fix: return the value of every module type from importModule()
    
    Build-time execution reads the executed module as JavaScript in its own
    chunk graph instead of each generator counting importModule() as a
    JavaScript consumer, so the real bundle gets no extra code. Code
    generation there also follows codeGenerationDependencies.
    
    * test: execute a module after its css referrer in the importModule case
    
    * test: keep the inline module type intact on windows
    
    * test: check out the importModule case's text fixtures with LF
    alexander-akait authored Oct 23, 2026
    Configuration menu
    Copy the full SHA
    6e43fc2 View commit details
    Browse the repository at this point in the history
  7. chore(release): new release (#22867)

    Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
    github-actions[bot] authored Oct 23, 2026
    Configuration menu
    Copy the full SHA
    e95a7f2 View commit details
    Browse the repository at this point in the history
Loading