diff --git a/CHANGELOG.md b/CHANGELOG.md
index 461fe11aedd..7cac76f9787 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,6 +1,6 @@
 # Changelog
 
-## Unreleased
+## 0.12.28
 
 * Fix U+30FB and U+FF65 in identifier names in ES5 vs. ES6+ ([#1599](https://github.com/evanw/esbuild/issues/1599))
 
diff --git a/cmd/esbuild/version.go b/cmd/esbuild/version.go
index 003b62f7dc7..3a50ebacc28 100644
--- a/cmd/esbuild/version.go
+++ b/cmd/esbuild/version.go
@@ -1,3 +1,3 @@
 package main
 
-const esbuildVersion = "0.12.27"
+const esbuildVersion = "0.12.28"
diff --git a/npm/esbuild-android-arm64/package.json b/npm/esbuild-android-arm64/package.json
index 3ab8bea9b00..94d846a0104 100644
--- a/npm/esbuild-android-arm64/package.json
+++ b/npm/esbuild-android-arm64/package.json
@@ -1,6 +1,6 @@
 {
   "name": "esbuild-android-arm64",
-  "version": "0.12.27",
+  "version": "0.12.28",
   "description": "The Android ARM 64-bit binary for esbuild, a JavaScript bundler.",
   "repository": "https://github.com/evanw/esbuild",
   "license": "MIT",
diff --git a/npm/esbuild-darwin-64/package.json b/npm/esbuild-darwin-64/package.json
index efc1ede3b63..a33af9ca7d8 100644
--- a/npm/esbuild-darwin-64/package.json
+++ b/npm/esbuild-darwin-64/package.json
@@ -1,6 +1,6 @@
 {
   "name": "esbuild-darwin-64",
-  "version": "0.12.27",
+  "version": "0.12.28",
   "description": "The macOS 64-bit binary for esbuild, a JavaScript bundler.",
   "repository": "https://github.com/evanw/esbuild",
   "license": "MIT",
diff --git a/npm/esbuild-darwin-arm64/package.json b/npm/esbuild-darwin-arm64/package.json
index 4e1dac78648..e8a8ef7e88b 100644
--- a/npm/esbuild-darwin-arm64/package.json
+++ b/npm/esbuild-darwin-arm64/package.json
@@ -1,6 +1,6 @@
 {
   "name": "esbuild-darwin-arm64",
-  "version": "0.12.27",
+  "version": "0.12.28",
   "description": "The macOS ARM 64-bit binary for esbuild, a JavaScript bundler.",
   "repository": "https://github.com/evanw/esbuild",
   "license": "MIT",
diff --git a/npm/esbuild-freebsd-64/package.json b/npm/esbuild-freebsd-64/package.json
index 0c6501ad549..44a69665a36 100644
--- a/npm/esbuild-freebsd-64/package.json
+++ b/npm/esbuild-freebsd-64/package.json
@@ -1,6 +1,6 @@
 {
   "name": "esbuild-freebsd-64",
-  "version": "0.12.27",
+  "version": "0.12.28",
   "description": "The FreeBSD 64-bit binary for esbuild, a JavaScript bundler.",
   "repository": "https://github.com/evanw/esbuild",
   "license": "MIT",
diff --git a/npm/esbuild-freebsd-arm64/package.json b/npm/esbuild-freebsd-arm64/package.json
index b14d9bd80b6..79c7616080a 100644
--- a/npm/esbuild-freebsd-arm64/package.json
+++ b/npm/esbuild-freebsd-arm64/package.json
@@ -1,6 +1,6 @@
 {
   "name": "esbuild-freebsd-arm64",
-  "version": "0.12.27",
+  "version": "0.12.28",
   "description": "The FreeBSD ARM 64-bit binary for esbuild, a JavaScript bundler.",
   "repository": "https://github.com/evanw/esbuild",
   "license": "MIT",
diff --git a/npm/esbuild-linux-32/package.json b/npm/esbuild-linux-32/package.json
index aa0cbd49a33..b4049e755a0 100644
--- a/npm/esbuild-linux-32/package.json
+++ b/npm/esbuild-linux-32/package.json
@@ -1,6 +1,6 @@
 {
   "name": "esbuild-linux-32",
-  "version": "0.12.27",
+  "version": "0.12.28",
   "description": "The Linux 32-bit binary for esbuild, a JavaScript bundler.",
   "repository": "https://github.com/evanw/esbuild",
   "license": "MIT",
diff --git a/npm/esbuild-linux-64/package.json b/npm/esbuild-linux-64/package.json
index f95c307849b..174bcb7b531 100644
--- a/npm/esbuild-linux-64/package.json
+++ b/npm/esbuild-linux-64/package.json
@@ -1,6 +1,6 @@
 {
   "name": "esbuild-linux-64",
-  "version": "0.12.27",
+  "version": "0.12.28",
   "description": "The Linux 64-bit binary for esbuild, a JavaScript bundler.",
   "repository": "https://github.com/evanw/esbuild",
   "license": "MIT",
diff --git a/npm/esbuild-linux-arm/package.json b/npm/esbuild-linux-arm/package.json
index 8934cc0477f..2c78e3fb787 100644
--- a/npm/esbuild-linux-arm/package.json
+++ b/npm/esbuild-linux-arm/package.json
@@ -1,6 +1,6 @@
 {
   "name": "esbuild-linux-arm",
-  "version": "0.12.27",
+  "version": "0.12.28",
   "description": "The Linux ARM binary for esbuild, a JavaScript bundler.",
   "repository": "https://github.com/evanw/esbuild",
   "license": "MIT",
diff --git a/npm/esbuild-linux-arm64/package.json b/npm/esbuild-linux-arm64/package.json
index 3433ee0438d..525486f8d76 100644
--- a/npm/esbuild-linux-arm64/package.json
+++ b/npm/esbuild-linux-arm64/package.json
@@ -1,6 +1,6 @@
 {
   "name": "esbuild-linux-arm64",
-  "version": "0.12.27",
+  "version": "0.12.28",
   "description": "The Linux ARM 64-bit binary for esbuild, a JavaScript bundler.",
   "repository": "https://github.com/evanw/esbuild",
   "license": "MIT",
diff --git a/npm/esbuild-linux-mips64le/package.json b/npm/esbuild-linux-mips64le/package.json
index c5604e74433..523bc6a4a85 100644
--- a/npm/esbuild-linux-mips64le/package.json
+++ b/npm/esbuild-linux-mips64le/package.json
@@ -1,6 +1,6 @@
 {
   "name": "esbuild-linux-mips64le",
-  "version": "0.12.27",
+  "version": "0.12.28",
   "description": "The Linux MIPS 64-bit Little Endian binary for esbuild, a JavaScript bundler.",
   "repository": "https://github.com/evanw/esbuild",
   "license": "MIT",
diff --git a/npm/esbuild-linux-ppc64le/package.json b/npm/esbuild-linux-ppc64le/package.json
index 3633d042ce8..5257daded5a 100644
--- a/npm/esbuild-linux-ppc64le/package.json
+++ b/npm/esbuild-linux-ppc64le/package.json
@@ -1,6 +1,6 @@
 {
   "name": "esbuild-linux-ppc64le",
-  "version": "0.12.27",
+  "version": "0.12.28",
   "description": "The Linux PowerPC 64-bit Little Endian binary for esbuild, a JavaScript bundler.",
   "repository": "https://github.com/evanw/esbuild",
   "license": "MIT",
diff --git a/npm/esbuild-openbsd-64/package.json b/npm/esbuild-openbsd-64/package.json
index becd114339e..7384c8bd5a2 100644
--- a/npm/esbuild-openbsd-64/package.json
+++ b/npm/esbuild-openbsd-64/package.json
@@ -1,6 +1,6 @@
 {
   "name": "esbuild-openbsd-64",
-  "version": "0.12.27",
+  "version": "0.12.28",
   "description": "The OpenBSD 64-bit binary for esbuild, a JavaScript bundler.",
   "repository": "https://github.com/evanw/esbuild",
   "license": "MIT",
diff --git a/npm/esbuild-sunos-64/package.json b/npm/esbuild-sunos-64/package.json
index 975cf82c178..99f29cc4019 100644
--- a/npm/esbuild-sunos-64/package.json
+++ b/npm/esbuild-sunos-64/package.json
@@ -1,6 +1,6 @@
 {
   "name": "esbuild-sunos-64",
-  "version": "0.12.27",
+  "version": "0.12.28",
   "description": "The illumos 64-bit binary for esbuild, a JavaScript bundler.",
   "repository": "https://github.com/evanw/esbuild",
   "license": "MIT",
diff --git a/npm/esbuild-wasm/package.json b/npm/esbuild-wasm/package.json
index deda11e7448..09ec3c72afa 100644
--- a/npm/esbuild-wasm/package.json
+++ b/npm/esbuild-wasm/package.json
@@ -1,6 +1,6 @@
 {
   "name": "esbuild-wasm",
-  "version": "0.12.27",
+  "version": "0.12.28",
   "description": "The cross-platform WebAssembly binary for esbuild, a JavaScript bundler.",
   "repository": "https://github.com/evanw/esbuild",
   "license": "MIT",
diff --git a/npm/esbuild-windows-32/package.json b/npm/esbuild-windows-32/package.json
index 62fd98610d7..6f706af1499 100644
--- a/npm/esbuild-windows-32/package.json
+++ b/npm/esbuild-windows-32/package.json
@@ -1,6 +1,6 @@
 {
   "name": "esbuild-windows-32",
-  "version": "0.12.27",
+  "version": "0.12.28",
   "description": "The Windows 32-bit binary for esbuild, a JavaScript bundler.",
   "repository": "https://github.com/evanw/esbuild",
   "license": "MIT",
diff --git a/npm/esbuild-windows-64/package.json b/npm/esbuild-windows-64/package.json
index 070d71da757..d7168b29424 100644
--- a/npm/esbuild-windows-64/package.json
+++ b/npm/esbuild-windows-64/package.json
@@ -1,6 +1,6 @@
 {
   "name": "esbuild-windows-64",
-  "version": "0.12.27",
+  "version": "0.12.28",
   "description": "The Windows 64-bit binary for esbuild, a JavaScript bundler.",
   "repository": "https://github.com/evanw/esbuild",
   "license": "MIT",
diff --git a/npm/esbuild-windows-arm64/package.json b/npm/esbuild-windows-arm64/package.json
index 075a1ed981a..9f0095dc8e3 100644
--- a/npm/esbuild-windows-arm64/package.json
+++ b/npm/esbuild-windows-arm64/package.json
@@ -1,6 +1,6 @@
 {
   "name": "esbuild-windows-arm64",
-  "version": "0.12.27",
+  "version": "0.12.28",
   "description": "The Windows ARM 64-bit binary for esbuild, a JavaScript bundler.",
   "repository": "https://github.com/evanw/esbuild",
   "license": "MIT",
diff --git a/npm/esbuild/package.json b/npm/esbuild/package.json
index 0463498331b..8cca71afd19 100644
--- a/npm/esbuild/package.json
+++ b/npm/esbuild/package.json
@@ -1,6 +1,6 @@
 {
   "name": "esbuild",
-  "version": "0.12.27",
+  "version": "0.12.28",
   "description": "An extremely fast JavaScript bundler and minifier.",
   "repository": "https://github.com/evanw/esbuild",
   "scripts": {
diff --git a/version.txt b/version.txt
index 84bb609536c..46f7bc37481 100644
--- a/version.txt
+++ b/version.txt
@@ -1 +1 @@
-0.12.27
+0.12.28