Updating supplemental_dependency.tmp triggers regenerating all binding. To solve this problem, WriteFileIfChanged of preprocess-idls.pl was introduced in Bug 117708. But, this approach causes infinite preprocessing. CMake build uses generate-bindings-all.pl which has solved the problem. WriteFileIfChanged is useless for CMake build anymore, but causes unnecessary preprocessing.
Just stopping using WriteFileIfChanged of preprocess-idls.pl causes another problem. Modifying any IDL will trigger recompiling DOMWindow.idl, DedicatedWorkerGlobalScope.idl and WorkerGlobalScope.idl. Because preprocess-idls.pl generates DOMWindowConstructors.idl, WorkerGlobalScopeConstructors.idl and DedicatedWorkerGlobalScopeConstructors.idl. I think this is better than the infinite preprocessing. There is a solution to solve both problems. Remember time-stamps of all IDL in a text file. If the time-stamp is changed, invoke preprocess-idls.pl.