Skip to content

Comments

fix(deps): update minifiers#841

Merged
privatenumber merged 5 commits intomasterfrom
renovate/minifiers
Feb 8, 2026
Merged

fix(deps): update minifiers#841
privatenumber merged 5 commits intomasterfrom
renovate/minifiers

Conversation

@renovate
Copy link
Contributor

@renovate renovate bot commented Feb 8, 2026

This PR contains the following updates:

Package Change Age Adoption Passing Confidence
@swc/core (source) 1.15.3 β†’ 1.15.11 age adoption passing confidence
@tdewolff/minify ^2.24.7 β†’ ^2.24.8 age adoption passing confidence
bun (source) ^1.3.2 β†’ ^1.3.8 age adoption passing confidence
esbuild ^0.27.0 β†’ ^0.27.3 age adoption passing confidence
oxc-minify (source) ^0.98.0 β†’ ^0.112.0 age adoption passing confidence
terser (source) ^5.44.1 β†’ ^5.46.0 age adoption passing confidence

Release Notes

swc-project/swc (@​swc/core)

v1.15.11

Compare Source

Bug Fixes
Documentation
Features
Miscellaneous Tasks
Performance
Refactor
Testing

v1.15.10

Compare Source

Bug Fixes
Features
Miscellaneous Tasks
Performance
Refactor
Testing
Ci
  • Collapse preivous claude[bot] PR review comments (affb6a2)

v1.15.8

Compare Source

Bug Fixes
Features
Performance
Refactor

v1.15.7

Compare Source

Bug Fixes
  • (es/minifier) Prevent unsafe sequence merging in super() calls (#​11381) (eb02780)

  • (es/transformer) Fix variable declaration for nullish coalescing in else-if branches (#​11384) (6746002)

  • (es/transforms) Update _ts_rewrite_relative_import_extension helper code (#​11382) (1ec444e)

Features
Performance
Refactor

v1.15.6

Compare Source

Bug Fixes
  • (es/transformer) Fix missing var declaration in nullish coalescing with spreads (#​11377) (686d154)
Performance

v1.15.5

Compare Source

Bug Fixes

v1.15.4

Compare Source

Bug Fixes
Features
Performance
tdewolff/minify (@​tdewolff/minify)

v2.24.8

Compare Source

  • Remove CSS.KeepCSS2 (use CSS.Version=2); make SVG.Inline private; fixes #​868
  • Rewrite JS bindings (thanks to @​VastBlast)
oven-sh/bun (bun)

v1.3.8: Bun v1.3.8

Compare Source

To install Bun v1.3.8

curl -fsSL https://bun.sh/install | bash

# or you can use npm
# npm install -g bun

Windows:

powershell -c "irm bun.sh/install.ps1|iex"

To upgrade to Bun v1.3.8:

bun upgrade
Read Bun v1.3.8's release notes on Bun's blog
Thanks to 4 contributors!

v1.3.7: Bun v1.3.7

Compare Source

To install Bun v1.3.7

curl -fsSL https://bun.sh/install | bash

# or you can use npm
# npm install -g bun

Windows:

powershell -c "irm bun.sh/install.ps1|iex"

To upgrade to Bun v1.3.7:

bun upgrade
Read Bun v1.3.7's release notes on Bun's blog
Thanks to 11 contributors!

v1.3.6: Bun v1.3.6

Compare Source

To install Bun v1.3.6

curl -fsSL https://bun.sh/install | bash

# or you can use npm
# npm install -g bun

Windows:

powershell -c "irm bun.sh/install.ps1|iex"

To upgrade to Bun v1.3.6:

bun upgrade
Read Bun v1.3.6's release notes on Bun's blog
Thanks to 23 contributors!

v1.3.5: Bun v1.3.5

Compare Source

To install Bun v1.3.5

curl -fsSL https://bun.sh/install | bash

# or you can use npm
# npm install -g bun

Windows:

powershell -c "irm bun.sh/install.ps1|iex"

To upgrade to Bun v1.3.5:

bun upgrade
Read Bun v1.3.5's release notes on Bun's blog
Thanks to 10 contributors!

v1.3.4: Bun v1.3.4

Compare Source

To install Bun v1.3.4

curl -fsSL https://bun.sh/install | bash

# or you can use npm
# npm install -g bun

Windows:

powershell -c "irm bun.sh/install.ps1|iex"

To upgrade to Bun v1.3.4:

bun upgrade
Read Bun v1.3.4's release notes on Bun's blog
Thanks to 14 contributors!

v1.3.3: Bun v1.3.3

Compare Source

To install Bun v1.3.3

curl -fsSL https://bun.sh/install | bash

# or you can use npm
# npm install -g bun

Windows:

powershell -c "irm bun.sh/install.ps1|iex"

To upgrade to Bun v1.3.3:

bun upgrade
Read Bun v1.3.3's release notes on Bun's blog
Thanks to 19 contributors!
evanw/esbuild (esbuild)

v0.27.3

Compare Source

  • Preserve URL fragments in data URLs (#​4370)

    Consider the following HTML, CSS, and SVG:

    • index.html:

      <!DOCTYPE html>
      <html>
        <head><link rel="stylesheet" href="icons.css"></head>
        <body><div class="triangle"></div></body>
      </html>
    • icons.css:

      .triangle {
        width: 10px;
        height: 10px;
        background: currentColor;
        clip-path: url(./triangle.svg#x);
      }
    • triangle.svg:

      <svg xmlns="http://www.w3.org/2000/svg">
        <defs>
          <clipPath id="x">
            <path d="M0 0H10V10Z"/>
          </clipPath>
        </defs>
      </svg>

    The CSS uses a URL fragment (the #x) to reference the clipPath element in the SVG file. Previously esbuild's CSS bundler didn't preserve the URL fragment when bundling the SVG using the dataurl loader, which broke the bundled CSS. With this release, esbuild will now preserve the URL fragment in the bundled CSS:

    /* icons.css */
    .triangle {
      width: 10px;
      height: 10px;
      background: currentColor;
      clip-path: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg"><defs><clipPath id="x"><path d="M0 0H10V10Z"/></clipPath></defs></svg>#x');
    }
  • Parse and print CSS @scope rules (#​4322)

    This release includes dedicated support for parsing @scope rules in CSS. These rules include optional "start" and "end" selector lists. One important consequence of this is that the local/global status of names in selector lists is now respected, which improves the correctness of esbuild's support for CSS modules. Minification of selectors inside @scope rules has also improved slightly.

    Here's an example:

    /* Original code */
    @&#8203;scope (:global(.foo)) to (:local(.bar)) {
      .bar {
        color: red;
      }
    }
    
    /* Old output (with --loader=local-css --minify) */
    @&#8203;scope (:global(.foo)) to (:local(.bar)){.o{color:red}}
    
    /* New output (with --loader=local-css --minify) */
    @&#8203;scope(.foo)to (.o){.o{color:red}}
  • Fix a minification bug with lowering of for await (#​4378, #​4385)

    This release fixes a bug where the minifier would incorrectly strip the variable in the automatically-generated catch clause of lowered for await loops. The code that generated the loop previously failed to mark the internal variable references as used.

  • Update the Go compiler from v1.25.5 to v1.25.7 (#​4383, #​4388)

    This PR was contributed by @​MikeWillCook.

v0.27.2

Compare Source

  • Allow import path specifiers starting with #/ (#​4361)

    Previously the specification for package.json disallowed import path specifiers starting with #/, but this restriction has recently been relaxed and support for it is being added across the JavaScript ecosystem. One use case is using it for a wildcard pattern such as mapping #/* to ./src/* (previously you had to use another character such as #_* instead, which was more confusing). There is some more context in nodejs/node#49182.

    This change was contributed by @​hybrist.

  • Automatically add the -webkit-mask prefix (#​4357, #​4358)

    This release automatically adds the -webkit- vendor prefix for the mask CSS shorthand property:

    /* Original code */
    main {
      mask: url(x.png) center/5rem no-repeat
    }
    
    /* Old output (with --target=chrome110) */
    main {
      mask: url(x.png) center/5rem no-repeat;
    }
    
    /* New output (with --target=chrome110) */
    main {
      -webkit-mask: url(x.png) center/5rem no-repeat;
      mask: url(x.png) center/5rem no-repeat;
    }

    This change was contributed by @​BPJEnnova.

  • Additional minification of switch statements (#​4176, #​4359)

    This release contains additional minification patterns for reducing switch statements. Here is an example:

    // Original code
    switch (x) {
      case 0:
        foo()
        break
      case 1:
      default:
        bar()
    }
    
    // Old output (with --minify)
    switch(x){case 0:foo();break;case 1:default:bar()}
    
    // New output (with --minify)
    x===0?foo():bar();
  • Forbid using declarations inside switch clauses (#​4323)

    This is a rare change to remove something that was previously possible. The Explicit Resource Management proposal introduced using declarations. These were previously allowed inside case and default clauses in switch statements. This had well-defined semantics and was already widely implemented (by V8, SpiderMonkey, TypeScript, esbuild, and others). However, it was considered to be too confusing because of how scope works in switch statements, so it has been removed from the specification. This edge case will now be a syntax error. See tc39/proposal-explicit-resource-management#215 and rbuckton/ecma262#14 for details.

    Here is an example of code that is no longer allowed:

    switch (mode) {
      case 'read':
        using readLock = db.read()
        return readAll(readLock)
    
      case 'write':
        using writeLock = db.write()
        return writeAll(writeLock)
    }

    That code will now have to be modified to look like this instead (note the additional { and } block statements around each case body):

    switch (mode) {
      case 'read': {
        using readLock = db.read()
        return readAll(readLock)
      }
      case 'write': {
        using writeLock = db.write()
        return writeAll(writeLock)
      }
    }

    This is not being released in one of esbuild's breaking change releases since this feature hasn't been finalized yet, and esbuild always tracks the current state of the specification (so esbuild's previous behavior was arguably incorrect).

v0.27.1

Compare Source

  • Fix bundler bug with var nested inside if (#​4348)

    This release fixes a bug with the bundler that happens when importing an ES module using require (which causes it to be wrapped) and there's a top-level var inside an if statement without being wrapped in a { ... } block (and a few other conditions). The bundling transform needed to hoist these var declarations outside of the lazy ES module wrapper for correctness. See the issue for details.

  • Fix minifier bug with for inside try inside label (#​4351)

    This fixes an old regression from version v0.21.4. Some code was introduced to move the label inside the try statement to address a problem with transforming labeled for await loops to avoid the await (the transformation involves converting the for await loop into a for loop and wrapping it in a try statement). However, it introduces problems for cross-compiled JVM code that uses all three of these features heavily. This release restricts this transform to only apply to for loops that esbuild itself generates internally as part of the for await transform. Here is an example of some affected code:

    // Original code
    d: {
      e: {
        try {
          while (1) { break d }
        } catch { break e; }
      }
    }
    
    // Old output (with --minify)
    a:try{e:for(;;)break a}catch{break e}
    
    // New output (with --minify)
    a:e:try{for(;;)break a}catch{break e}
  • Inline IIFEs containing a single expression (#​4354)

    Previously inlining of IIFEs (immediately-invoked function expressions) only worked if the body contained a single return statement. Now it should also work if the body contains a single expression statement instead:

    // Original code
    const foo = () => {
      const cb = () => {
        console.log(x())
      }
      return cb()
    }
    
    // Old output (with --minify)
    const foo=()=>(()=>{console.log(x())})();
    
    // New output (with --minify)
    const foo=()=>{console.log(x())};
  • The minifier now strips empty finally clauses (#​4353)

    This improvement means that finally clauses containing dead code can potentially cause the associated try statement to be removed from the output entirely in minified builds:

    // Original code
    function foo(callback) {
      if (DEBUG) stack.push(callback.name);
      try {
        callback();
      } finally {
        if (DEBUG) stack.pop();
      }
    }
    
    // Old output (with --minify --define:DEBUG=false)
    function foo(a){try{a()}finally{}}
    
    // New output (with --minify --define:DEBUG=false)
    function foo(a){a()}
  • Allow tree-shaking of the Symbol constructor

    With this release, calling Symbol is now considered to be side-effect free when the argument is known to be a primitive value. This means esbuild can now tree-shake module-level symbol variables:

    // Original code
    const a = Symbol('foo')
    const b = Symbol(bar)
    
    // Old output (with --tree-shaking=true)
    const a = Symbol("foo");
    const b = Symbol(bar);
    
    // New output (with --tree-shaking=true)
    const b = Symbol(bar);
oxc-project/oxc (oxc-minify)

v0.111.0

πŸ’₯ BREAKING CHANGES
  • af0ca46 span: [BREAKING] Use ModuleKind::CommonJS for SourceType::cjs() (#​18276) (sapphi-red)
πŸ“š Documentation

v0.106.0

πŸš€ Features

v0.102.0

πŸ’₯ BREAKING CHANGES
  • 083fea9 napi/parser: [BREAKING] Represent empty optional fields on JS side as null (#​16411) (overlookmotel)
terser/terser (terser)

v5.46.0

Compare Source

  • Add "observedAttributes" domprop (#​1652)
  • More domprops (mostly Temporal related) suggested in #​1652

v5.45.0

Compare Source

  • Produce void 0 instead of undefined, which is more safe

Configuration

πŸ“… Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

β™» Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

πŸ‘» Immortal: This PR will be recreated if closed unmerged. Get config help if that's undesired.


  • If you want to rebase/retry this PR, check this box

This PR was generated by Mend Renovate. View the repository job log.

@renovate renovate bot force-pushed the renovate/minifiers branch from 0ecc316 to 9c90dc1 Compare February 8, 2026 07:15
@renovate
Copy link
Contributor Author

renovate bot commented Feb 8, 2026

Edited/Blocked Notification

Renovate will not automatically rebase this PR, because it does not recognize the last commit author and assumes somebody else may have edited the PR.

You can manually request rebase by checking the rebase/retry box above.

⚠️ Warning: custom changes will be lost.

@privatenumber privatenumber merged commit 18bc833 into master Feb 8, 2026
@privatenumber privatenumber deleted the renovate/minifiers branch February 8, 2026 07:32
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant