Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Bump esbuild from 0.14.17 to 0.14.25 #967

Merged
merged 1 commit into from
Mar 4, 2022

Conversation

dependabot[bot]
Copy link
Contributor

@dependabot dependabot bot commented on behalf of github Mar 4, 2022

Bumps esbuild from 0.14.17 to 0.14.25.

Release notes

Sourced from esbuild's releases.

v0.14.25

  • Reduce minification of CSS transforms to avoid Safari bugs (#2057)

    In Safari, applying a 3D CSS transform to an element can cause it to render in a different order than applying a 2D CSS transform even if the transformation matrix is identical. I believe this is a bug in Safari because the CSS transform specification doesn't seem to distinguish between 2D and 3D transforms as far as rendering order:

    For elements whose layout is governed by the CSS box model, any value other than none for the transform property results in the creation of a stacking context.

    This bug means that minifying a 3D transform into a 2D transform must be avoided even though it's a valid transformation because it can cause rendering differences in Safari. Previously esbuild sometimes minified 3D CSS transforms into 2D CSS transforms but with this release, esbuild will no longer do that:

    /* Original code */
    div { transform: matrix3d(2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1) }
    /* Old output (with --minify) */
    div{transform:scale(2)}
    /* New output (with --minify) */
    div{transform:scale3d(2,2,1)}

  • Minification now takes advantage of the ?. operator

    This adds new code minification rules that shorten code with the ?. optional chaining operator when the result is equivalent:

    // Original code
    let foo = (x) => {
      if (x !== null && x !== undefined) x.y()
      return x === null || x === undefined ? undefined : x.z
    }
    // Old output (with --minify)
    let foo=n=>(n!=null&&n.y(),n==null?void 0:n.z);
    // New output (with --minify)
    let foo=n=>(n?.y(),n?.z);

    This only takes effect when minification is enabled and when the configured target environment is known to support the optional chaining operator. As always, make sure to set --target= to the appropriate language target if you are running the minified code in an environment that doesn't support the latest JavaScript features.

  • Add source mapping information for some non-executable tokens (#1448)

    Code coverage tools can generate reports that tell you if any code exists that has not been run (or "covered") during your tests. You can use this information to add additional tests for code that isn't currently covered.

    Some popular JavaScript code coverage tools have bugs where they incorrectly consider lines without any executable code as uncovered, even though there's no test you could possibly write that would cause those lines to be executed. For example, they apparently complain about the lines that only contain the trailing } token of an object literal.

    With this release, esbuild now generates source mappings for some of these trailing non-executable tokens. This may not successfully work around bugs in code coverage tools because there are many non-executable tokens in JavaScript and esbuild doesn't map them all (the drawback of mapping these extra tokens is that esbuild will use more memory, build more slowly, and output a bigger source map). The true solution is to fix the bugs in the code coverage tools in the first place.

  • Fall back to WebAssembly on Android x64 (#2068)

... (truncated)

Changelog

Sourced from esbuild's changelog.

0.14.25

  • Reduce minification of CSS transforms to avoid Safari bugs (#2057)

    In Safari, applying a 3D CSS transform to an element can cause it to render in a different order than applying a 2D CSS transform even if the transformation matrix is identical. I believe this is a bug in Safari because the CSS transform specification doesn't seem to distinguish between 2D and 3D transforms as far as rendering order:

    For elements whose layout is governed by the CSS box model, any value other than none for the transform property results in the creation of a stacking context.

    This bug means that minifying a 3D transform into a 2D transform must be avoided even though it's a valid transformation because it can cause rendering differences in Safari. Previously esbuild sometimes minified 3D CSS transforms into 2D CSS transforms but with this release, esbuild will no longer do that:

    /* Original code */
    div { transform: matrix3d(2, 0, 0, 0, 0, 2, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1) }
    /* Old output (with --minify) */
    div{transform:scale(2)}
    /* New output (with --minify) */
    div{transform:scale3d(2,2,1)}

  • Minification now takes advantage of the ?. operator

    This adds new code minification rules that shorten code with the ?. optional chaining operator when the result is equivalent:

    // Original code
    let foo = (x) => {
      if (x !== null && x !== undefined) x.y()
      return x === null || x === undefined ? undefined : x.z
    }
    // Old output (with --minify)
    let foo=n=>(n!=null&&n.y(),n==null?void 0:n.z);
    // New output (with --minify)
    let foo=n=>(n?.y(),n?.z);

    This only takes effect when minification is enabled and when the configured target environment is known to support the optional chaining operator. As always, make sure to set --target= to the appropriate language target if you are running the minified code in an environment that doesn't support the latest JavaScript features.

  • Add source mapping information for some non-executable tokens (#1448)

    Code coverage tools can generate reports that tell you if any code exists that has not been run (or "covered") during your tests. You can use this information to add additional tests for code that isn't currently covered.

    Some popular JavaScript code coverage tools have bugs where they incorrectly consider lines without any executable code as uncovered, even though there's no test you could possibly write that would cause those lines to be executed. For example, they apparently complain about the lines that only contain the trailing } token of an object literal.

    With this release, esbuild now generates source mappings for some of these trailing non-executable tokens. This may not successfully work around bugs in code coverage tools because there are many non-executable tokens in JavaScript and esbuild doesn't map them all (the drawback of mapping these extra tokens is that esbuild will use more memory, build more slowly, and output a bigger source map). The true solution is to fix the bugs in the code coverage tools in the first place.

  • Fall back to WebAssembly on Android x64 (#2068)

... (truncated)

Commits
  • fdf31de publish 0.14.25 to npm
  • 456ee6f Update CHANGELOG.md
  • 1452a38 upgrade to go 1.17.8
  • 5bad391 fix #2057: work around safari css transform bugs
  • 62e74e5 ignore side effects for unbound identifiers and ?.
  • 2e9fc4e split ast helpers into another file
  • 5a14f26 more minification rules for "?:" into "||/&&"
  • bdd1ad7 simplify unused "a != null && a.b()" into "a?.b()"
  • a07a659 additional minification rule for "?:" into "||/&&"
  • bfa9794 minify: use "?." to shorten code when possible
  • Additional commits viewable in compare view

Dependabot compatibility score

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


Dependabot commands and options

You can trigger Dependabot actions by commenting on this PR:

  • @dependabot rebase will rebase this PR
  • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
  • @dependabot merge will merge this PR after your CI passes on it
  • @dependabot squash and merge will squash and merge this PR after your CI passes on it
  • @dependabot cancel merge will cancel a previously requested merge and block automerging
  • @dependabot reopen will reopen this PR if it is closed
  • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
  • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)

Bumps [esbuild](https://github.com/evanw/esbuild) from 0.14.17 to 0.14.25.
- [Release notes](https://github.com/evanw/esbuild/releases)
- [Changelog](https://github.com/evanw/esbuild/blob/master/CHANGELOG.md)
- [Commits](evanw/esbuild@v0.14.17...v0.14.25)

---
updated-dependencies:
- dependency-name: esbuild
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
@dependabot dependabot bot added the dependencies Auto-pinning label Mar 4, 2022
@dbanck dbanck merged commit 333d47d into main Mar 4, 2022
@dbanck dbanck deleted the dependabot/npm_and_yarn/esbuild-0.14.25 branch March 4, 2022 11:01
@github-actions
Copy link

github-actions bot commented Apr 4, 2022

I'm going to lock this pull request because it has been closed for 30 days ⏳. This helps our maintainers find and focus on the active issues.
If you have found a problem that seems related to this change, please open a new issue and complete the issue template so we can capture all the details necessary to investigate further.

@github-actions github-actions bot locked as resolved and limited conversation to collaborators Apr 4, 2022
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
dependencies Auto-pinning
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

1 participant