Skip to content

Conversation

@dependabot
Copy link
Contributor

@dependabot dependabot bot commented on behalf of github Dec 3, 2025

Bumps the esbuild group with 1 update in the / directory: esbuild.
Bumps the esbuild group with 1 update in the /packages/app directory: esbuild.
Bumps the esbuild group with 1 update in the /packages/cli directory: esbuild.
Bumps the esbuild group with 1 update in the /packages/create-app directory: esbuild.

Updates esbuild from 0.25.12 to 0.27.1

Release notes

Sourced from esbuild's releases.

v0.27.1

  • 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:

... (truncated)

Changelog

Sourced from esbuild's changelog.

0.27.1

  • 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:

... (truncated)

Commits
  • 5e0e56d publish 0.27.1 to npm
  • 5a89732 fix #4354: improve IIFE inlining for expressions
  • b940218 minify: move unused expr simplification later
  • c46d498 fix #4353: remove empty try/finally clauses
  • 7a72735 fix #4348: bundler bug with var inside if
  • 4e4e177 fix #4351: label + try + for minifier bug
  • d6427c9 fix: deno release url wrong comment (#4326)
  • 48e3e19 calling Symbol.for with a primitive never throws
  • 4ff88d0 update decorator-tests.js snapshot
  • 1877e60 calling Symbol with a primitive will never throw
  • Additional commits viewable in compare view
Maintainer changes

This version was pushed to npm by [GitHub Actions](https://www.npmjs.com/~GitHub Actions), a new releaser for esbuild since your current version.


Updates esbuild from 0.25.12 to 0.27.1

Release notes

Sourced from esbuild's releases.

v0.27.1

  • 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:

... (truncated)

Changelog

Sourced from esbuild's changelog.

0.27.1

  • 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:

... (truncated)

Commits
  • 5e0e56d publish 0.27.1 to npm
  • 5a89732 fix #4354: improve IIFE inlining for expressions
  • b940218 minify: move unused expr simplification later
  • c46d498 fix #4353: remove empty try/finally clauses
  • 7a72735 fix #4348: bundler bug with var inside if
  • 4e4e177 fix #4351: label + try + for minifier bug
  • d6427c9 fix: deno release url wrong comment (#4326)
  • 48e3e19 calling Symbol.for with a primitive never throws
  • 4ff88d0 update decorator-tests.js snapshot
  • 1877e60 calling Symbol with a primitive will never throw
  • Additional commits viewable in compare view
Maintainer changes

This version was pushed to npm by [GitHub Actions](https://www.npmjs.com/~GitHub Actions), a new releaser for esbuild since your current version.


Updates esbuild from 0.25.12 to 0.27.1

Release notes

Sourced from esbuild's releases.

v0.27.1

  • 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:

... (truncated)

Changelog

Sourced from esbuild's changelog.

0.27.1

  • 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:

... (truncated)

Commits
  • 5e0e56d publish 0.27.1 to npm
  • 5a89732 fix #4354: improve IIFE inlining for expressions
  • b940218 minify: move unused expr simplification later
  • c46d498 fix #4353: remove empty try/finally clauses
  • 7a72735 fix #4348: bundler bug with var inside if
  • 4e4e177 fix #4351: label + try + for minifier bug
  • d6427c9 fix: deno release url wrong comment (#4326)
  • 48e3e19 calling Symbol.for with a primitive never throws
  • 4ff88d0 update decorator-tests.js snapshot
  • 1877e60 calling Symbol with a primitive will never throw
  • Additional commits viewable in compare view
Maintainer changes

This version was pushed to npm by [GitHub Actions](https://www.npmjs.com/~GitHub Actions), a new releaser for esbuild since your current version.


Updates esbuild from 0.25.12 to 0.27.1

Release notes

Sourced from esbuild's releases.

v0.27.1

  • 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:

... (truncated)

Changelog

Sourced from esbuild's changelog.

0.27.1

  • 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:

... (truncated)

Commits
  • 5e0e56d publish 0.27.1 to npm
  • 5a89732 fix #4354: improve IIFE inlining for expressions
  • b940218 minify: move unused expr simplification later
  • c46d498 fix #4353: remove empty try/finally clauses
  • 7a72735 fix #4348: bundler bug with var inside if
  • 4e4e177 fix #4351: label + try + for minifier bug
  • d6427c9 fix: deno release url wrong comment (#4326)
  • 48e3e19 calling Symbol.for with a primitive never throws
  • 4ff88d0 update decorator-tests.js snapshot
  • 1877e60 calling Symbol with a primitive will never throw
  • Additional commits viewable in compare view
Maintainer changes

This version was pushed to npm by [GitHub Actions](https://www.npmjs.com/~GitHub Actions), a new releaser for esbuild since your current version.


Updates esbuild from 0.25.12 to 0.27.1

Release notes

Sourced from esbuild's releases.

v0.27.1

  • 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:

... (truncated)

Changelog

Sourced from esbuild's changelog.

0.27.1

  • 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:

... (truncated)

Commits
  • 5e0e56d publish 0.27.1 to npm
  • 5a89732 fix #4354: improve IIFE inlining for expressions
  • b940218 minify: move unused expr simplification later
  • c46d498 fix #4353: remove empty try/finally clauses
  • 7a72735 fix #4348: bundler bug with var inside if
  • 4e4e177 fix #4351: label + try + for minifier bug
  • d6427c9 fix: deno release url wrong comment (#4326)
  • 48e3e19 calling Symbol.for with a primitive never throws
  • 4ff88d0 update decorator-tests.js snapshot
  • 1877e60 calling Symbol with a primitive will never throw
  • Additional commits viewable in compare view
Maintainer changes

This version was pushed to npm by [GitHub Actions](https://www.npmjs.com/~GitHub Actions), a new releaser for esbuild since your current version.


Updates esbuild from 0.25.12 to 0.27.1

Release notes

Sourced from esbuild's releases.

v0.27.1

  • 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:

... (truncated)

Changelog

Sourced from esbuild's changelog.

0.27.1

  • 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:

... (truncated)

Commits
  • 5e0e56d publish 0.27.1 to npm
  • 5a89732 fix #4354: improve IIFE inlining for expressions
  • b940218 minify: move unused expr simplification later
  • c46d498 fix #4353: remove empty try/finally clauses
  • 7a72735 fix #4348: bundler bug with var inside if
  • 4e4e177 fix #4351: label + try + for minifier bug
  • d6427c9 fix: deno release url wrong comment (#4326)
  • 48e3e19 calling Symbol.for with a primitive never throws
  • 4ff88d0 update decorator-tests.js snapshot
  • 1877e60 calling Symbol with a primitive will never throw
  • Additional commits viewable in compare view
Maintainer changes

This version was pushed to npm by [GitHub Actions](https://www.npmjs.com/~GitHub Actions), a new releaser for esbuild since your current version.


Updates esbuild from 0.25.12 to 0.27.1

Release notes

Sourced from esbuild's releases.

v0.27.1

  • 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:

... (truncated)

Changelog

Sourced from esbuild's changelog.

0.27.1

  • 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:

... (truncated)

Commits
  • 5e0e56d publish 0.27.1 to npm
  • 5a89732 fix #4354: improve IIFE inlining for expressions
  • b940218 minify: move unused expr simplification later
  • c46d498 fix #4353: remove empty try/finally clauses
  • 7a72735 fix #4348: bundler bug with var inside if
  • 4e4e177 fix #4351: label + try + for minifier bug
  • d6427c9 fix: deno release url wrong comment (#4326)
  • 48e3e19 calling Symbol.for with a primitive never throws
  • 4ff88d0 update decorator-tests.js snapshot
  • 1877e60 calling Symbol with a primitive will never throw
  • Additional commits viewable in compare view
Maintainer changes

This version was pushed to npm by [GitHub Actions](https://www.npmjs.com/~GitHub Actions), a new releaser for esbuild since your current version.


Updates esbuild from 0.25.12 to 0.27.1

Release notes

Sourced from esbuild's releases.

v0.27.1

  • 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 cont...

    Description has been truncated

Bumps the esbuild group with 1 update in the / directory: [esbuild](https://github.com/evanw/esbuild).
Bumps the esbuild group with 1 update in the /packages/app directory: [esbuild](https://github.com/evanw/esbuild).
Bumps the esbuild group with 1 update in the /packages/cli directory: [esbuild](https://github.com/evanw/esbuild).
Bumps the esbuild group with 1 update in the /packages/create-app directory: [esbuild](https://github.com/evanw/esbuild).


Updates `esbuild` from 0.25.12 to 0.27.1
- [Release notes](https://github.com/evanw/esbuild/releases)
- [Changelog](https://github.com/evanw/esbuild/blob/main/CHANGELOG.md)
- [Commits](evanw/esbuild@v0.25.12...v0.27.1)

Updates `esbuild` from 0.25.12 to 0.27.1
- [Release notes](https://github.com/evanw/esbuild/releases)
- [Changelog](https://github.com/evanw/esbuild/blob/main/CHANGELOG.md)
- [Commits](evanw/esbuild@v0.25.12...v0.27.1)

Updates `esbuild` from 0.25.12 to 0.27.1
- [Release notes](https://github.com/evanw/esbuild/releases)
- [Changelog](https://github.com/evanw/esbuild/blob/main/CHANGELOG.md)
- [Commits](evanw/esbuild@v0.25.12...v0.27.1)

Updates `esbuild` from 0.25.12 to 0.27.1
- [Release notes](https://github.com/evanw/esbuild/releases)
- [Changelog](https://github.com/evanw/esbuild/blob/main/CHANGELOG.md)
- [Commits](evanw/esbuild@v0.25.12...v0.27.1)

Updates `esbuild` from 0.25.12 to 0.27.1
- [Release notes](https://github.com/evanw/esbuild/releases)
- [Changelog](https://github.com/evanw/esbuild/blob/main/CHANGELOG.md)
- [Commits](evanw/esbuild@v0.25.12...v0.27.1)

Updates `esbuild` from 0.25.12 to 0.27.1
- [Release notes](https://github.com/evanw/esbuild/releases)
- [Changelog](https://github.com/evanw/esbuild/blob/main/CHANGELOG.md)
- [Commits](evanw/esbuild@v0.25.12...v0.27.1)

Updates `esbuild` from 0.25.12 to 0.27.1
- [Release notes](https://github.com/evanw/esbuild/releases)
- [Changelog](https://github.com/evanw/esbuild/blob/main/CHANGELOG.md)
- [Commits](evanw/esbuild@v0.25.12...v0.27.1)

Updates `esbuild` from 0.25.12 to 0.27.1
- [Release notes](https://github.com/evanw/esbuild/releases)
- [Changelog](https://github.com/evanw/esbuild/blob/main/CHANGELOG.md)
- [Commits](evanw/esbuild@v0.25.12...v0.27.1)

Updates `esbuild` from 0.25.12 to 0.27.1
- [Release notes](https://github.com/evanw/esbuild/releases)
- [Changelog](https://github.com/evanw/esbuild/blob/main/CHANGELOG.md)
- [Commits](evanw/esbuild@v0.25.12...v0.27.1)

Updates `esbuild` from 0.25.12 to 0.27.1
- [Release notes](https://github.com/evanw/esbuild/releases)
- [Changelog](https://github.com/evanw/esbuild/blob/main/CHANGELOG.md)
- [Commits](evanw/esbuild@v0.25.12...v0.27.1)

Updates `esbuild` from 0.25.12 to 0.27.1
- [Release notes](https://github.com/evanw/esbuild/releases)
- [Changelog](https://github.com/evanw/esbuild/blob/main/CHANGELOG.md)
- [Commits](evanw/esbuild@v0.25.12...v0.27.1)

Updates `esbuild` from 0.25.12 to 0.27.1
- [Release notes](https://github.com/evanw/esbuild/releases)
- [Changelog](https://github.com/evanw/esbuild/blob/main/CHANGELOG.md)
- [Commits](evanw/esbuild@v0.25.12...v0.27.1)

Updates `esbuild` from 0.25.12 to 0.27.1
- [Release notes](https://github.com/evanw/esbuild/releases)
- [Changelog](https://github.com/evanw/esbuild/blob/main/CHANGELOG.md)
- [Commits](evanw/esbuild@v0.25.12...v0.27.1)

Updates `esbuild` from 0.25.12 to 0.27.1
- [Release notes](https://github.com/evanw/esbuild/releases)
- [Changelog](https://github.com/evanw/esbuild/blob/main/CHANGELOG.md)
- [Commits](evanw/esbuild@v0.25.12...v0.27.1)

Updates `esbuild` from 0.25.12 to 0.27.1
- [Release notes](https://github.com/evanw/esbuild/releases)
- [Changelog](https://github.com/evanw/esbuild/blob/main/CHANGELOG.md)
- [Commits](evanw/esbuild@v0.25.12...v0.27.1)

Updates `esbuild` from 0.25.12 to 0.27.1
- [Release notes](https://github.com/evanw/esbuild/releases)
- [Changelog](https://github.com/evanw/esbuild/blob/main/CHANGELOG.md)
- [Commits](evanw/esbuild@v0.25.12...v0.27.1)

---
updated-dependencies:
- dependency-name: esbuild
  dependency-version: 0.27.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: esbuild
- dependency-name: esbuild
  dependency-version: 0.27.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: esbuild
- dependency-name: esbuild
  dependency-version: 0.27.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: esbuild
- dependency-name: esbuild
  dependency-version: 0.27.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: esbuild
- dependency-name: esbuild
  dependency-version: 0.27.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: esbuild
- dependency-name: esbuild
  dependency-version: 0.27.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: esbuild
- dependency-name: esbuild
  dependency-version: 0.27.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: esbuild
- dependency-name: esbuild
  dependency-version: 0.27.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: esbuild
- dependency-name: esbuild
  dependency-version: 0.27.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: esbuild
- dependency-name: esbuild
  dependency-version: 0.27.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: esbuild
- dependency-name: esbuild
  dependency-version: 0.27.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: esbuild
- dependency-name: esbuild
  dependency-version: 0.27.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: esbuild
- dependency-name: esbuild
  dependency-version: 0.27.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: esbuild
- dependency-name: esbuild
  dependency-version: 0.27.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: esbuild
- dependency-name: esbuild
  dependency-version: 0.27.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: esbuild
- dependency-name: esbuild
  dependency-version: 0.27.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: esbuild
...

Signed-off-by: dependabot[bot] <support@github.com>
@dependabot dependabot bot added the dependencies Pull requests that update a dependency file label Dec 3, 2025
@dependabot dependabot bot requested a review from a team as a code owner December 3, 2025 21:25
@dependabot dependabot bot added the dependencies Pull requests that update a dependency file label Dec 3, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Pull requests that update a dependency file

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants