diff --git a/accounts/abi/bind/auth.go b/accounts/abi/bind/auth.go
index b8065e8488ed..d9ff7a7a0af9 100644
--- a/accounts/abi/bind/auth.go
+++ b/accounts/abi/bind/auth.go
@@ -14,6 +14,8 @@
// You should have received a copy of the GNU Lesser General Public License
// along with the go-ethereum library. If not, see .
+// +build !js
+
package bind
import (
diff --git a/metrics/cpu_disabled.go b/metrics/cpu_disabled.go
index 6c3428993fb1..b0b483ee4bce 100644
--- a/metrics/cpu_disabled.go
+++ b/metrics/cpu_disabled.go
@@ -14,7 +14,7 @@
// You should have received a copy of the GNU Lesser General Public License
// along with the go-ethereum library. If not, see .
-// +build ios
+// +build ios js
package metrics
diff --git a/metrics/cpu_enabled.go b/metrics/cpu_enabled.go
index 02192928b70c..edb824d9aa44 100644
--- a/metrics/cpu_enabled.go
+++ b/metrics/cpu_enabled.go
@@ -14,7 +14,7 @@
// You should have received a copy of the GNU Lesser General Public License
// along with the go-ethereum library. If not, see .
-// +build !ios
+// +build !ios,!js
package metrics
diff --git a/metrics/cpu_windows.go b/metrics/cpu_no_syscall.go
similarity index 97%
rename from metrics/cpu_windows.go
rename to metrics/cpu_no_syscall.go
index fb29a52a82c1..1bf5537277fe 100644
--- a/metrics/cpu_windows.go
+++ b/metrics/cpu_no_syscall.go
@@ -14,6 +14,8 @@
// You should have received a copy of the GNU Lesser General Public License
// along with the go-ethereum library. If not, see .
+// +build windows js
+
package metrics
// getProcessCPUTime returns 0 on Windows as there is no system call to resolve
diff --git a/metrics/cpu_syscall.go b/metrics/cpu_syscall.go
index 50e04ef1d34b..55871e668c8a 100644
--- a/metrics/cpu_syscall.go
+++ b/metrics/cpu_syscall.go
@@ -14,7 +14,7 @@
// You should have received a copy of the GNU Lesser General Public License
// along with the go-ethereum library. If not, see .
-// +build !windows
+// +build !windows,!js
package metrics