Repository navigation
Permalink
Choose a base ref
{{ refName }}
default
Choose a head ref
{{ refName }}
default
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
Could not load branches
Nothing to show
Loading
Could not load tags
Nothing to show
{{ refName }}
default
Loading
...
head repository: webpack/webpack
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: v5.112.2
Could not load branches
Nothing to show
Loading
Could not load tags
Nothing to show
{{ refName }}
default
Loading
- 7 commits
- 54 files changed
- 3 contributors
Commits on Oct 23, 2026
-
Configuration menu - View commit details
-
Copy full SHA for a1e5f6a - Browse repository at this point
Copy the full SHA a1e5f6aView commit details -
Configuration menu - View commit details
-
Copy full SHA for 8c3cbd3 - Browse repository at this point
Copy the full SHA 8c3cbd3View commit details -
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
Configuration menu - View commit details
-
Copy full SHA for 660608c - Browse repository at this point
Copy the full SHA 660608cView commit details -
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
Configuration menu - View commit details
-
Copy full SHA for 0c02242 - Browse repository at this point
Copy the full SHA 0c02242View commit details -
Configuration menu - View commit details
-
Copy full SHA for 4ffac8d - Browse repository at this point
Copy the full SHA 4ffac8dView commit details -
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
Configuration menu - View commit details
-
Copy full SHA for 6e43fc2 - Browse repository at this point
Copy the full SHA 6e43fc2View commit details -
chore(release): new release (#22867)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Configuration menu - View commit details
-
Copy full SHA for e95a7f2 - Browse repository at this point
Copy the full SHA e95a7f2View commit details
Loading
This comparison is taking too long to generate.
Unfortunately it looks like we can’t render this comparison for you right now. It might be too big, or there might be something weird with your repository.
You can try running this command locally to see the comparison on your machine:
git diff v5.112.1...v5.112.2