diff --git a/accounts/abi/bind/auth.go b/accounts/abi/bind/auth.go
index a4307a9529101..1e1e8c9373baa 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 6c3428993fb10..b0b483ee4bcea 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 02192928b70cc..edb824d9aa447 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 fb29a52a82c1d..1bf5537277fe5 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 50e04ef1d34b8..55871e668c8a6 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