diff --git a/clear_xpcom_vars.mk b/clear_xpcom_vars.mk
index 52e6b5fe20b9544c756aff5d7dab9f400ab23f41..2477f83a27f65322de87d278848187934dfa9e4b 100644
--- a/clear_xpcom_vars.mk
+++ b/clear_xpcom_vars.mk
@@ -7,6 +7,7 @@ LOCAL_INSTALLED_XPCOM_IDL_HEADERS :=
 LOCAL_JS_NOTICE :=
 LOCAL_JS_SRC_FILES :=
 LOCAL_JS_LINTONLY_FILES :=
+LOCAL_JSLINT_FATAL :=
 LOCAL_XPCOM_IDLS :=
 LOCAL_XPCOM_INSTALL_DIR :=
 LOCAL_XPCOM_MODULE_OBJDIR :=
diff --git a/xpcom.mk b/xpcom.mk
index 9893c005e94aad5adddcd44766e19954b9cd27d7..75f20e33fdeb0f87f007fcb0abc0704afbefb5d9 100644
--- a/xpcom.mk
+++ b/xpcom.mk
@@ -186,16 +186,17 @@ endif
 ifdef USE_JSMIN
 JSMIN := $(BUILD_OUT_EXECUTABLES)/jsmin$(BUILD_EXECUTABLE_SUFFIX)
 $(INSTALLED_JS_FILES): PRIVATE_JS_NOTICE := $(LOCAL_JS_NOTICE)
+$(INSTALLED_JS_FILES): PRIVATE_JSLINT_FATAL := $(LOCAL_JSLINT_FATAL)
 $(INSTALLED_JS_FILES): $(LOCAL_MODULE_PATH)/%.js: $(LOCAL_PATH)/%.js $(JSMIN) $(DEPENDS_ON_GECKO)
 ifdef GJSLINT
-	$(GJSLINT) $<
+	$(if $(filter $(PRIVATE_JSLINT_FATAL),1),,-)$(GJSLINT) $<
 endif
 	@mkdir -p $(@D)
 	$(JSMIN) < $< > $@ '$(PRIVATE_JS_NOTICE)'
 else
 $(INSTALLED_JS_FILES): $(LOCAL_MODULE_PATH)/%.js: $(LOCAL_PATH)/%.js $(ACP) $(DEPENDS_ON_GECKO)
 ifdef GJSLINT
-	$(GJSLINT) $<
+	$(if $(filter $(PRIVATE_JSLINT_FATAL),1),,-)$(GJSLINT) $<
 endif
 	@mkdir -p $(@D)
 	$(ACP) $< $@
@@ -203,9 +204,10 @@ endif
 
 JS_LINTONLY_OK_FILES := $(addsuffix .ok, $(addprefix $(LOCAL_XPCOM_MODULE_OBJDIR)/,$(LOCAL_JS_LINTONLY_FILES)))
 
+$(JS_LINTONLY_OK_FILES): PRIVATE_JSLINT_FATAL := $(LOCAL_JSLINT_FATAL)
 $(JS_LINTONLY_OK_FILES): $(LOCAL_XPCOM_MODULE_OBJDIR)/%.js.ok: $(LOCAL_PATH)/%.js
 ifdef GJSLINT
-	$(GJSLINT) $<
+	$(if $(filter $(PRIVATE_JSLINT_FATAL),1),,-)$(GJSLINT) $<
 endif
 	@mkdir -p $(@D)
 	touch $@